【问题标题】:Is it more efficient to have @ApplicationScoped beans?拥有@ApplicationScoped bean 效率更高吗?
【发布时间】:2019-01-08 09:07:19
【问题描述】:

假设我们有一些无状态工厂。是否最好设为@ApplicationScoped

换句话说,我们是否应该将 bean 设为 @ApplicationScoped,仅当我们希望在所有客户端之间显式共享其状态时,或者对于无状态 bean 也更可取?

在这方面最好的 Java EE 实践是什么?

【问题讨论】:

    标签: java jakarta-ee


    【解决方案1】:

    作为一般原则:尽可能缩小范围。

    除非您有某种方式强制您的无状态 bean 保持无状态,否则可能会意外添加状态,然后出现问题。

    【讨论】:

    • 此外,无状态对我来说意味着“建造成本低”,尤其是在工厂环境中。我知道情况不一定如此——因此不会增加答案——但如果构建起来很便宜,那么创建大量实例并不重要。
    • Factory 意味着“建造起来并不便宜”。
    • @Mick 工厂建造的东西可能建造起来并不便宜;工厂本身通常是。
    • 我不同意。您不能从工厂模式的使用中暗示太多。持久化上下文也是一个生产实体管理器的工厂。持久化上下文非常昂贵,而实体管理器则不然。
    猜你喜欢
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多