我在我的应用程序中使用ehcache(未复制或分发),因为我知道它只能从同一个JVM访问,但同一个JVM中的所有应用程序(例如部署在app服务器中)都可以从缓存中获取值。我是对的吗? 我想要的是只有我的应用程序可以获取缓存及其值。有可能吗?我检查了XML配置文件,但我没有找到任何配置来控制它。或者,当我从CacheManager获取缓存时,我应该设置一些东西吗? 这就是我在代码中获取缓存的方式:
private static final String LOCAL_CACHE_NAME = "LOCAL_PROTNEUT_STORE";
private Cache getCache() {
// the name of the ehcache should be able to be configured in the general config XML
URL url = getClass().getResource("/protneut-local-ehcache.xml");
CacheManager manager = CacheManager.create(url);
Cache cache = manager.getCache(LOCAL_CACHE_NAME);
return cache;
}
配置文件:
<ehcache>
<cache name="LOCAL_PROTNEUT_STORE" maxElementsInMemory="500" eternal="true" memoryStoreEvictionPolicy="LRU" />
</ehcache>
是否可以控制访问权限?
感谢您的帮助!
的问候,
诉
答案 0 :(得分:1)
在一般情况下,应用程序无法相互访问,因为它们加载了separe类路径(您可以阅读更多关于它的here),因此您不必担心它。
您需要付出额外的努力才能在所有应用程序中使用简单的缓存管理器(例如通过JNDI使其可用或将其放在共享库中)