2012-11-04 29 views
2

我應該使用哪種編程模式(和產品)在EJB 3.0無狀態會話Bean中創建通用內存中對象緩存?在EJB 3.0中緩存對象

使用靜態成員變量或單例模式是否會在集羣環境中導致任何副作用(如果緩存不是一致的)?

要緩存的數據是從JDBC數據源(JPA不是選項)和Web服務獲取的。要緩存的數據量只有幾兆字節。緩存必須提供非常快的讀取速度,因此我更希望解決方案應該在應用程序使用的JVM內部運行。

回答

-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; 
    } 
}