现在,在 EJB 3.1 中,我们可以找到 javax.ejb.Singleton 注释,它可以确保这个 bean 将是单例的。
有没有一种方法可以确保在 EJB 3.0 中使用无状态 bean 并在我的代码中进行一些修改(使用关键字 static 或其他方式来做到这一点......)
现在,在 EJB 3.1 中,我们可以找到 javax.ejb.Singleton 注释,它可以确保这个 bean 将是单例的。
有没有一种方法可以确保在 EJB 3.0 中使用无状态 bean 并在我的代码中进行一些修改(使用关键字 static 或其他方式来做到这一点......)
如果您能够将@Stateless
bean 池大小限制为 1,那么您可以非常接近@Singleton
.
效果就像拥有一个@Lock(WRITE)
用于所有调用的@Singleton(即没有并发)并且不会急切地通过@Startup
(它将在第一次访问时启动)。
@Startup
如果您的平台可以选择急切地填充@Stateless
bean 池,您可能仍然可以获得效果。
有没有一种方法可以确保在 EJB 3.0 中使用无状态 bean 并在我的代码中进行一些修改(使用关键字 static 或其他方式来做到这一点......)
不,没有标准。不过,您的容器可能会提供一些特定的扩展(例如,JBoss 有一个专有@Service
注释)。