ステートフルなプロトタイプ Bean を作成する必要があります。つまり、コンストラクターでパラメーターを取得します。
@Configuration を使用してその Bean を作成しようとしましたが、パラメーター化されたコンストラクターを使用すると機能しないことがわかりました...
渡したいパラメーターはSpring Beanではないことに注意してください...それらは単純なPOJOです...したがって、自動配線できません。
だから、これが私がやりたいことです -
@Configuration
public class MyClassFactory {
@Bean
public MyClass getMyClass(Pojo1 pojo1, Pojo2 pojo2) {
return new MyClass (pojo1, pojo2);
}
}
@Scope("PROTOTYPE")
public class MyClass {
public MyClass(Pojo1 pojo1, Pojo2 pojo2) {
...
}
@Autowired SomeService1 service1;
@Autowired SomeService1 service2;
...
}
もちろん、プロトタイプ Bean にするのではなく、MyClass の applicationContextAware を作成し、そこからサービスを取得することもできます...しかし、上記のパターンが許可されていない理由が不思議でした...