#java #spring
Имеется коллекция объектов
@Autowired
private List objects;
В рантайме создаю новую реализацию интерфейса SomeInterface,
Как сделать , чтобы спринг обновил эту коллекцию?
Ответы
Ответ 1
Можете сделать так: @Autowired private ApplicationContext context; public CollectiongetList(){ return context.getBeansOfType(SomeInterface.class); } Но, чтобы это правильно работало, необходимо вашу новую реализацию зарегистрировать в контексте spring'a . Например так: ((DefaultListableBeanFactory)context .getAutowiredCapableBeanFactory()) .registerSingleton(new SomeInterfaceImpl());
Комментариев нет:
Отправить комментарий