5

通过在无状态会话 Bean 中使用单例会话 Bean,是否允许(并且是良好做法)在我们的应用程序中保存一些共享信息?

SSB 将被注入到 SLSB。

@Stateless
public class MySLSB {

    @Inject
    MySSB mySSB;

-

@Singleton
@Lock(READ)
public class MySSB implements Serializable {

    private static final long serialVersionUID = 1L;
4

2 回答 2

6

这是超过允许的。在无状态或有状态 EJB 中使用单例注入将允许您在 SLSB 中调用 SSB 上的业务方法。微不足道的优势之一是使用 SSB 并发功能。在您的示例中,您对 SSB 的所有方法调用都将被锁定为读取,这意味着您的所有线程都将在读取模式下访问您的 SSB 方法,除非线程持有写入锁定。

于 2015-08-25T07:18:55.767 回答
1

是的,这是允许的,我认为这是一种很好的做法。在我正在使用的项目中,存储了从文件中读取的全局属性。这是一种很好的做法,因为您将它存储在一个地方,如果您需要这些信息,那么您只需注入您的单例 bean。我认为这是好莱坞原则的好例子。

于 2015-08-25T06:37:48.647 回答