Страницы

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

воскресенье, 9 июня 2019 г.

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

Имеется коллекция объектов
@Autowired private List objects;
В рантайме создаю новую реализацию интерфейса SomeInterface, Как сделать , чтобы спринг обновил эту коллекцию?


Ответ

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

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

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