我正在尝试理解Spring prototype bean的正确用法是什么。下面的代码示例可能会帮助您理解我的困境:
List<ClassA> caList = new ArrayList<ClassA>();
for (String name : nameList) {
ClassA ca = new ClassA();
//or Shall I use protypebean, using method lookup I can inject the dependency of ClassA.
// ClassA ca = getPrototypeClassA();
ca.setName(name);
caList.add(ca);
}所以我的确切观点是,在这个场景中,我应该使用方法注入还是new()运算符。为你的观点提供理由。
发布于 2019-01-03 14:49:34
您的实例似乎需要一些运行时值才能正确初始化。在这种情况下,这取决于您是否需要为ClassA实例使用spring特性。如果是,使用方法injection .If not,您可以考虑使用工厂模式。对我来说,更多的是面向对象和更简洁:
类似于下面的内容。你应该明白这一点。
@Component
public class FactoryForClassA {
@Autowired
private FooBean someDependencyForClassA;
public ClassA create(String name){
ClassA a = new ClassA(someDependencyForClassA);
a.setName(name);
return a;
}
}和客户端代码:
@Autowired
private FactoryForClassA factoryForClassA;
List<ClassA> caList = new ArrayList<ClassA>();
for (String name : nameList) {
ClassA a = factoryForClassA.create(name);
caList.add(ca);
}https://stackoverflow.com/questions/54016936
复制相似问题