我需要创建一个有状态的原型bean,即在构造函数中获取参数。
我尝试使用@Configuration 创建该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;
...
}
当然,我可以制作 MyClass applicationContextAware,并从中获取服务,而不是使其成为原型 bean……但想知道为什么不允许使用上述模式……