我在下面看到了这个博客,关于 Servlet 和将 EJB 注入其中。作者是从标准的角度写作的。
http://tamanmohamed.blogspot.ie/2012/03/jpa-why-we-need-to-specifies-type-level.html http://tamanmohamed.blogspot.ie/2012/03/jpa-thread-safety -when-injecting.html
“将 EJB 3 有状态 bean 注入 servlet 实例字段不是线程安全的。同理,将带有 @PersistenceContext 的 EntityManager 注入 servlet 实例变量也不是线程安全的。EntityManager 的设计初衷不是线程安全的。”
无论如何,我开始担心我与同事在 Glassfish-3.1.2 实现中编写的代码。见下文。我认为它类似于我在 Duke 辅导教程中看到的代码,所以应该没问题(FaceServlets 使用 @PersistnceContext EntityManager 调用无状态请求 bean。)
但是我想我假设容器管理的 EntityManager 能够处理由许多 servlet 实例调用的无状态 bean 的大量并发调用。
这是对带有 Oracle 数据库的 Glassfish-3.1.2 的正确假设吗?到目前为止,它似乎工作得很好,但也许它不会承受重载。
提前感谢您的任何见解。对不起,我对这个很陌生。菲奥娜
Servlet
{
@EJB
private StatelessbeanBlah
:
}
@Stateless
StatelessBeanBlah
{
@PersistenceContext(unitname = "...")
private EntityManager em;