Страницы

Поиск по вопросам

четверг, 2 апреля 2020 г.

Как обновить autowired коллекцию Spring

#java #spring

                    
Имеется коллекция объектов

@Autowired
private List objects;


В рантайме создаю новую реализацию интерфейса SomeInterface, 
Как сделать , чтобы спринг обновил эту коллекцию? 
    


Ответы

Ответ 1



Можете сделать так: @Autowired private ApplicationContext context; public Collection getList(){ return context.getBeansOfType(SomeInterface.class); } Но, чтобы это правильно работало, необходимо вашу новую реализацию зарегистрировать в контексте spring'a . Например так: ((DefaultListableBeanFactory)context .getAutowiredCapableBeanFactory()) .registerSingleton(new SomeInterfaceImpl());

Комментариев нет:

Отправить комментарий