【发布时间】:2012-02-08 17:41:12
【问题描述】:
我有一个服务项目和一个网络项目。我需要在两个项目中都有 eh-cache。
这个想法是,如果服务项目被更新,它与缓存相关的更改(如键和失效规则)也将可用,而不会对 Web 项目进行任何更改。如此独立,服务项目也可以在他们甚至不知道 eh-cache 的情况下与其他项目一起使用。
此时,我的 Web 项目也将 eh-cache 用于自己的目的。我对 eh-cache 没有多少经验,我担心这两个项目在部署在一起时可能会发生冲突。我也没有在eh-cache网站上找到相关信息。
你能告诉我一些如何最好地配置这两个项目的信息,以便我可以达到上述要求吗?
编辑:
我正在使用 Spring,因此我更愿意将它用于我的缓存管理器。
我在 context.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>
对于 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 会被上次读取的上下文覆盖,并且只有一个缓存可以运行。是我错了,还是遗漏了什么?
【问题讨论】:
-
你有没有得到这个工作? Using Spring cache annotation in multiple modules(和我自己的测试)上的答案似乎表明它没有。
-
@C.Ross,实际上我必须将 ehcache xml 合并为一个并使用合并的文件。我们很快将缓存提供程序更改为 hazelcast,因此不再需要使用 ehcache。如果没有帮助,请见谅
-
只是困惑。我通常假设接受的答案有效,但它在这里没有。
标签: java configuration-files war ehcache web-deployment