如何实现类似Singleton的EJB3.0 bean?

时间:2009-08-24 13:13:50

标签: java singleton ejb-3.0

我需要实现一个简单的DAO bean,它还可以缓存从数据库中读取的数据。这个DAO bean由无状态bean使用。

因为EJB3.0不支持单例bean,实现这样一个DAO bean的正确方法是什么?是否可以使用静态变量来保存缓存?

我们正在使用Oracle AS而不会使用群集。

3 个答案:

答案 0 :(得分:4)

以某种交叉应用程序方式执行此操作的“正确”方法是使用jmx mbean进行缓存行为。 mbeans是单身人士(每个应用程序服务器),可以执行线程和锁定等操作。当然,取决于您使用的appserver,mbeans在实践中可能或多或少难以使用。

答案 1 :(得分:2)

大多数应用程序服务器和JPA实现都提供某种可由用户控制的内置缓存机制。在不必建立单身人士的情况下调查实现所需内容的方法可能是值得的。

单例和J2EE的一个主要问题是在集群环境中没有简单的方法来处理它们。

所有人都说,我确实找到了一个article,它提出了一些可能在JBoss下做你想做的事情的建议,并且提到了一个新的@Singleton注释,因此这可能是一种可能性。如果这对你有用,你应该写下你所做的,作为这个问题的另一个答案。

答案 2 :(得分:0)

如果您在Weblogic服务器上运行,实际上可以实现一个也支持群集的单例bean。我不相信其他应用程序服务器上存在此功能。