0

我们有一个位于 Web 服务 (EJB3) 后面的无状态 EJB,该 EJB 还加载了一个 EntityManager,该 EntityManager 在它发出的调用中传递。我有一个问题。

对 web 服务的同时调用是使用相同的 EJB 还是有不同的实例?我特别问这个关于注入的 EntityManager 的使用。

谢谢

4

1 回答 1

3

取决于应用服务器使用相同或不同。你可能会认为它们是不同的。

现在,如果您要注入它,我假设您已将其声明为实例变量,这对于无状态 EJB 来说是一个非常糟糕的主意,因为好吧。它不应该有状态。

与其注入 EntityManager,不如让应用服务器完成其工作,而您只需从上下文中获取它。来自无状态的每个方法调用都属于一个事务,不会干扰其他调用。

总结:假设它们是不同的实例,并且不要将这些对象注入你自己。从应用服务器负责离开它们的上下文中获取它们。

我希望我能正确理解你的问题。

于 2008-09-26T19:12:52.610 回答