6

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

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

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

4

2 回答 2

2

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

于 2009-04-05T05:51:38.013 回答
1

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

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

于 2009-04-15T21:28:47.947 回答