Как управлять компонентами, созданными с помощью FactoryBean spring?

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

Однако похоже, что bean-компоненты , созданные с помощью FactoryBean , не становятся управляемыми с помощью Spring. Эта интерпретация верна? Если да, есть ли хорошие обходные пути? Пример краткого кода прилагается, чтобы проиллюстрировать мою проблему.

ApplicationContext:

 
 

Заводская реализация:

public class SearcherFactory implements FactoryBean {

    @Override
    public Searcher getObject() throws Exception {
        return new Searcher(); // not so complex after all ;)
    }

    @Override
    public Class getObjectType() {
        return Searcher.class;
    }
    .... 
}

Класс, созданный фабрикой:

public class Searcher() {
      private Service service;

      @Autowired
      public void setService(Service service) {
           // never invoked
           this.service=service;
      } 
}

33
задан Bozho 11 February 2011 в 23:09
поделиться