在EJB 3.0中缓存对象

时间:2012-11-04 00:50:33

标签: caching ejb-3.0 stateless-session-bean

我应该使用哪种编程模式(和产品)在EJB 3.0无状态会话bean中创建通用的内存中对象缓存?

如果不要求缓存是连贯的,那么使用静态成员变量或单例模式是否会在集群环境中引起任何副作用?

要缓存的数据是从JDBC数据源(JPA不是选项)和Web服务获取的。要缓存的数据量是几兆字节。缓存必须提供非常快速的读取,因此我希望解决方案应该在应用程序正在使用的JVM中运行。

1 个答案:

答案 0 :(得分:-1)

我想唯一的解决方案是创建一个存储为成员变量的单例。

@Stateless
public class MyBean {
    private CacheManager cacheManager;


    @PostConstruct
    public void initialize() {
         cacheManager = CacheManager.getInstance();
    }
}


public class CacheManager {
    private static CacheManager instance;

    public synchronized getInstance() {
       if (instance == null) {
           instance = new CacheManager()
       }
       return instance;
    }
}