首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >最佳实践是什么:使用原型bean而不是new ()运算符

最佳实践是什么:使用原型bean而不是new ()运算符
EN

Stack Overflow用户
提问于 2019-01-03 13:45:45
回答 3查看 309关注 0票数 5

我正在尝试理解Spring prototype bean的正确用法是什么。下面的代码示例可能会帮助您理解我的困境:

代码语言:javascript
运行
复制
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()运算符。为你的观点提供理由。

EN

Stack Overflow用户

发布于 2019-01-03 14:49:34

您的实例似乎需要一些运行时值才能正确初始化。在这种情况下,这取决于您是否需要为ClassA实例使用spring特性。如果是,使用方法injection .If not,您可以考虑使用工厂模式。对我来说,更多的是面向对象和更简洁:

类似于下面的内容。你应该明白这一点。

代码语言:javascript
运行
复制
@Component
public class FactoryForClassA {

    @Autowired
    private FooBean someDependencyForClassA;


    public ClassA create(String name){
        ClassA a = new ClassA(someDependencyForClassA);
        a.setName(name);
        return a;
    }
}

和客户端代码:

代码语言:javascript
运行
复制
@Autowired
private FactoryForClassA factoryForClassA;

List<ClassA> caList = new ArrayList<ClassA>();
for (String name : nameList) {
    ClassA a = factoryForClassA.create(name);
    caList.add(ca);
}
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54016936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档