dea*_*mon 3 java multithreading thread-local java-ee ejb-3.0
我写了一个授权系统,它依赖于代表当前用户的对象.为了简化编程并提高性能,我希望在用户登录后将这些对象保存在ThreadLocal中.
它看起来像这样:
public class UserCache {
private static final ThreadLocal<User> cache = new ThreadLocal<User>();
public User getCurrentUser() {
return cache.get();
}
public void setCurrentUser(User user) {
cache.set(user);
}
}
Run Code Online (Sandbox Code Playgroud)
我已经读过静态元素使聚类成问题.如果我在每个群集节点上都有一个UserCache,则它们都有自己的缓存对象与其他节点上的缓存对象不同步.对?UserCache是单例的经典候选者,因为应用程序只需要它的一个实例.但据我所知,@ Singleton EJB在集群中具有相同的行为.
那么如何使UserCache在EJB 3.1(Java EE 6)环境中可以集群?
从答案中提取的解决方案:
| 归档时间: |
|
| 查看次数: |
2929 次 |
| 最近记录: |