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