首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >可以使用多个ehcache.xml (在不同的项目中,相同的war中)吗?

可以使用多个ehcache.xml (在不同的项目中,相同的war中)吗?
EN

Stack Overflow用户
提问于 2012-01-12 20:20:16
回答 3查看 12.1K关注 0票数 19

我有一个服务项目和一个web项目。我需要在两个项目中都有eh-cache。

这个想法是,如果服务项目被更新,它的与缓存相关的更改(如键和无效规则)也将可用,而不会对web项目进行任何更改。如此独立,服务项目也可以在其他项目甚至不知道eh-cache的情况下与它们一起使用。

在这一点上,我的web项目也使用了eh-cache来达到它自己的目的。我对eh-cache没有太多的经验,我担心这两个项目在一起部署时可能会发生冲突。我也没有在eh-cache站点上找到相关信息。

你能提供一些信息给我如何最好地配置这两个项目,以便我可以达到上述要求吗?

编辑:

我使用的是Spring,因此我更喜欢在缓存管理器中使用它。

我在带有ehcache的每个jar的context.xml中使用了以下内容,例如,对于jar 1,我有:

代码语言:javascript
复制
<ehcache:annotation-driven cache-manager="ehCacheManager1" />

<bean id="ehCacheManager1" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
    <property name="configLocation" value="classpath:ehcache-1.xml" />
</bean>

对于jar 2,我有

代码语言:javascript
复制
<ehcache:annotation-driven cache-manager="ehCacheManager2" />

<bean id="ehCacheManager2" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
    <property name="configLocation" value="classpath:ehcache-2.xml" />
</bean>

那么,两个缓存都会正常工作吗?我担心ehcache:annotation-driven会被最后一个读上下文覆盖,只有一个缓存是可操作的。我是错了,还是漏掉了什么?

EN

回答 3

Stack Overflow用户

发布于 2012-01-12 20:32:20

configurationResourceName属性用于指定在类路径的根目录中搜索ehcache配置file.The资源的位置。用于在同一个VM中支持多个CacheManagers。

代码语言:javascript
复制
net.sf.ehcache.configurationResourceName=/name_of_ehcache.xml
票数 3
EN

Stack Overflow用户

发布于 2014-09-19 04:35:06

尝试在ehcache.xml中以不同的方式命名这两个cacheManagers

代码语言:javascript
复制
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    name="ehCacheManager1">


<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    name="ehCacheManager2">
票数 2
EN

Stack Overflow用户

发布于 2012-01-12 20:38:45

如果您对不同的WAR使用不同的缓存,并且希望防止冲突,请转到每个WAR的echcache.xml并在cacheManagerPeerProviderFactory元素下定义不同的multicastGroupPort值。同时禁用分发。

祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8834993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档