【问题标题】:Design: Stateless Prototypes in Spring设计:Spring 中的无状态原型
【发布时间】:2011-11-17 16:04:37
【问题描述】:

我习惯于为服务、DAO 或控制器对象创建作为单例的 Spring bean。嗯,这对我来说似乎很自然。现在我的一个同事喜欢把所有这些对象都做成原型。

反对的理由是什么?还是专业的?

我唯一能说明的是每次引用 bean 时创建新实例的开销。虽然我觉得这种做法是非常错误的,肯定还有更多的原因。

【问题讨论】:

    标签: java spring prototype stateless


    【解决方案1】:

    所有 bean 都必须在单例范围内,除非有一些非常具体的原因不这样做。一个这样的原因是拥有状态。 (默认作用域是单例也就不足为奇了)

    【讨论】:

    • > bean 必须在单例范围内 是我的问题。我觉得这是真的,并且想将这种感觉转化为论据
    • 参数为 1。它是默认范围。 2. 原型没有理由——你能从中得到什么?
    • 不要认为我只是一个牧马人,但这些有点像重言式。也就是说,我想看看为什么单例是默认范围。我又提出了一个反对原型的理由:1. 性能(新实例创建 + 同步) 2. 耦合到 getBean 调用
    • @Leonid - 这只是常识 - 如果您不需要它们,请不要创建多个实例。你需要他们吗?不,你没有。 .getBean(..) 不是必需的,您可以注入原型(通过代理处理)
    猜你喜欢
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多