【发布时间】:2012-05-04 07:03:12
【问题描述】:
在servlet中,因为除了实现SingleThreadModel之外它是单例的。参考这篇文章https://www.fortify.com/vulncat/en/vulncat/java/singleton_member_field_race_condition.html
但在 EJB 3 中,我找不到类似的文档。并且因为容器将创建一个池来处理 EJB。我觉得class变量应该是安全的,对吗?
例如classVar1是一个类变量,我在构造函数中初始化它,稍后使用。在servlet中可能有问题,但是在EJB 3中应该没问题吧?
@Stateles
public class HelloBean implements Hello {
ObjectXXX classVar1;
public HelloBean() {
ObjectXXX classVar1 = new ObjectXXX();
}
public String doHello(String message) {
return message + classVar1.method1();
}
}
另一个问题是注入到EJB的资源(即JPA中的EntityManager)应该是线程安全的吗?
【问题讨论】:
标签: java thread-safety ejb