可以在EJB3中缓存远程无状态会话Bean引用吗?

时间:2009-04-05 05:42:36

标签: caching ejb-3.0 ejb jndi stateless-session-bean

我从J2SE应用程序调用远程无状态会话bean,并希望缓存对会话bean的引用,以降低查找成本。这个可以吗?

在EJB2中,ServiceLocator模式通常用于将查找缓存到远程资源,但EJB3没有单独的EJB Home(通常是缓存的)和Remote对象。

谷歌搜索,一个常见的答案是使用EJB3注入,但由于我正在从J2SE客户端调用远程EJB服务器,我不能使用注入。

2 个答案:

答案 0 :(得分:2)

是的,可以缓存它们。但是我不知道是否定义了行为,如果你有一个缓存的引用并且服务器在它下面重新启动会发生什么。您可以测试该方案,但行为可能因容器而异。

答案 1 :(得分:1)

如果服务器消失,您的引用将失效。

对于正常生命周期中的缓存,这应该没问题。我已经在EJB2和EJB3中做了多年,从来没有遇到过问题。一般来说,我只有一个静态的“LookupServices”类,它只是查找主页,或者如果它已经存在则返回现有的类 - 并将其存储在地图中。