我可以使用EJB 3.0创建自己的Singleton Stateless Bean吗?

时间:2010-10-02 07:00:50

标签: singleton ejb-3.0 ejb-3.1 stateless-session-bean

现在,使用EJB 3.1,我们可以找到javax.ejb.Singleton annocation,它可以确保这个bean将成为单例。

有没有一种方法可以确保在EJB 3.0中使用无状态bean的单例,并在我的代码中进行一些修改(使用关键字static,或其他方式来执行此操作....)

2 个答案:

答案 0 :(得分:8)

如果您能够将@Stateless bean池大小限制为1,那么您可以非常接近@Singleton

效果就像拥有一个@Singleton,它使用@Lock(WRITE)进行所有调用(即没有并发)并且不会急切地通过@Startup启动( it将在首次访问时开始)。

如果您的平台可以选择热切地填充@Startup bean池,您仍然可以获得@Stateless的效果。

答案 1 :(得分:1)

  

有没有办法可以确保在EJB 3.0中使用无状态bean的单例,并在我的代码中进行一些修改(使用关键字static,或其他方式来做到这一点......)

不,没有标准。您的容器可能会提供一些特定的扩展(例如JBoss具有专有的@Service注释)。