Как получить доступ к объекту в любом месте приложения после запуска

У меня есть список стран на карте в классе. Теперь я хочу получить доступ к этой карте в моем приложении в некоторых других классах.

Обычно я хочу, чтобы эта карта была доступна во всем приложении.

Я получаю список стран в загрузочном приложении сразу после запуска. Но можно установить его в области применения. Я использую весеннюю загрузку и веб.

Ниже мой код.

@SpringBootApplication
public class FinalApplication {

    public static void main(String[] args) {
        ApplicationContext context = new SpringApplicationBuilder(FinalApplication.class).run(args);
        Country cfg = context.getBean(Country.class);
        CountryDataLoader loader = new CountryDataLoader(cfg);
}

@ApplicationScope
@Component
@NoArgsConstructor
public class CountryDataLoader {

    Map<String,List<String>> regionMap = new HashMap<>();

    Map<String,List<String>> languageMap = new HashMap<>();
public List<String> countryListByAmericaRegion () {
        //System.out.println(myConfig.getList());
        List<CountryBean> list = myConfig.getList();
        Iterator<CountryBean> it = list.iterator();
        while(it.hasNext()) {
            CountryBean bean = it.next();
            if (bean.getRegion().equals(AMERICAS)) {
                byAmericaRegion.add(bean.getCountryName());
            }
        }
        regionMap.put(AMERICAS, byAmericaRegion);
        //System.out.println(byAmericaRegion);
        return byAmericaRegion;
    }

}

В классе countrydataLoader я загружаю все данные по стране. как получить доступ к этим двум картам в некоторых других контроллерах отдыха? Спасибо

0
0
49
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

CountryDaoLoader - это компонент Spring, и вы можете получить экземпляр компонента Spring из контекста приложения, как показано ниже.

ApplicationContextProvider.getApplicationContext().getBean(CountryDataLoader.class);

Другие вопросы по теме