是否可以使用多个ehcache.xml(在不同的项目中,相同的战争)?

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

这个想法是,如果更新了服务项目,则与缓存相关的更改(如键和失效规则)也将可用,而对Web项目不进行任何更改。由于如此独立,服务项目也可以与另一个项目一起使用,而他们甚至不知道eh-cache。

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

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


编辑:

我正在使用Spring,因此我更喜欢将其用于我的缓存管理器。

我在上下文中使用以下.xml对于每个带有ehcache的jar,例如我拥有的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>

对于罐子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


答案 1

属性用于指定 ehcache 配置文件的位置。在类路径的根目录中搜索资源。它用于支持同一 VM 中的多个缓存管理器。

net.sf.ehcache.configurationResourceName=/name_of_ehcache.xml

答案 2

尝试在 ehcache 中以不同的方式命名两个缓存管理器.xml

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    name="ehCacheManager1">


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

推荐