我需要创建一个有状态的原型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;
...
}
当然我可以创建MyClass applicationContextAware,并从中获取服务,而不是将其作为原型bean ...但是想知道为什么不允许上面的模式......