FactoryBeanを使用して、複雑なインスタンス化ロジックを必要とする可能性のあるオブジェクトをプログラムで作成できます。
しかし、によって作成された豆FactoryBean
は春の管理にはならないようです。この解釈は正しいですか?もしそうなら、何か良い回避策はありますか?私の問題を説明するために、短いコードサンプルが含まれています。
ApplicationContext:
<bean id="searcher" class="some.package.SearcherFactory" />
<bean id="service" class="some.package.Service" />
工場での実装:
public class SearcherFactory implements FactoryBean<Searcher> {
@Override
public Searcher getObject() throws Exception {
return new Searcher(); // not so complex after all ;)
}
@Override
public Class<Searcher> getObjectType() {
return Searcher.class;
}
....
}
工場で作成されたクラス:
public class Searcher() {
private Service service;
@Autowired
public void setService(Service service) {
// never invoked
this.service=service;
}
}