2012-06-14 3 views
1

Я хотел бы прочитать внешний файл конфигурации, который не находится в стандартном формате весны xml, и создать FooBean (ы) на основе этого файла.Весенний заводский бобин, возвращающий более одного объекта

Интерфейс Spring BeanFactory позволяет создавать только один объект, и я хотел бы вернуть ноль или более объектов в зависимости от внешнего файла конфигурации.

Должен ли я реализовать FactoryBean, где FooBeansHolder - это фиктивный класс, содержащий FooBean (s)? Или мне следует реализовать FactoryBean, ApplicationContextAware и вставлять bean-компоненты в BeanFactory, когда вызывается getObject()? В частности, в этом случае я не заинтересован в SpringConfig (без @Bean пожалуйста)

Просьбы зависимых классов все FooBean (ов), который будет введен в него:

@Autowired(required = true) 
private FooBean[] foobeans; 

ответ

0

FactoryBean имеет метод isSingleton() - он должен вернуть false, если вы хотите, чтобы завод производил более одного компонента. Проверьте его javadocs для получения дополнительной информации (он упоминает SmartFactoryBean)

+0

Не могли бы вы рассказать подробнее? Что мне следует возвращать из getObject()? Будет ли это повторяться как итератор? – itaifrenkel

+0

он будет называться каждый раз, когда запрашивается экземпляр компонента. – Bozho

+0

Я добавил к вопросу зависимое поле класса, которое требует всех FooBean (s). Как весна знала, сколько раз она должна вызывать FooBeanFactory # getObject()? – itaifrenkel

Смежные вопросы