我有一个服务项目和一个web项目。我需要在两个项目中都有eh-cache。
这个想法是,如果服务项目被更新,它的与缓存相关的更改(如键和无效规则)也将可用,而不会对web项目进行任何更改。如此独立,服务项目也可以在其他项目甚至不知道eh-cache的情况下与它们一起使用。
在这一点上,我的web项目也使用了eh-cache来达到它自己的目的。我对eh-cache没有太多的经验,我担心这两个项目在一起部署时可能会发生冲突。我也没有在eh-cache站点上找到相关信息。
你能提供一些信息给我如何最好地配置这两个项目,以便我可以达到上述要求吗?
编辑:
我使用的是Spring,因此我更喜欢在缓存管理器中使用它。
我在带有ehcache的每个jar的context.xml中使用了以下内容,例如,对于jar 1,我有:
<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,我有
<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
会被最后一个读上下文覆盖,只有一个缓存是可操作的。我是错了,还是漏掉了什么?
发布于 2012-01-12 20:32:20
configurationResourceName属性用于指定在类路径的根目录中搜索ehcache配置file.The资源的位置。用于在同一个VM中支持多个CacheManagers。
net.sf.ehcache.configurationResourceName=/name_of_ehcache.xml
发布于 2014-09-19 04:35:06
尝试在ehcache.xml中以不同的方式命名这两个cacheManagers
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="ehCacheManager1">
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="ehCacheManager2">
发布于 2012-01-12 20:38:45
如果您对不同的WAR使用不同的缓存,并且希望防止冲突,请转到每个WAR的echcache.xml并在cacheManagerPeerProviderFactory元素下定义不同的multicastGroupPort值。同时禁用分发。
祝好运!
https://stackoverflow.com/questions/8834993
复制相似问题