Java 我应该将ehcache.xml放在项目中的什么位置?
我最近开始使用EHCache进行缓存。我知道如何在Java代码中使用它,但我仍然不确定配置文件 所以,我有一个ear项目,它包括几个war模块。如果所有这些模块都使用ehcache,我应该为每个模块在WEB-INF中放置一份ehcache.xml的副本,还是将其放在ear文件本身的某个地方(可能是META-INF?) 此外,从文档中还不清楚,是否所有这些模块都将使用相同的缓存实例?应用程序部署在glassfish上,EHCache是否会为ear中的每个模块运行相同的缓存,或者每个模块在这样使用时将获得自己的单例实例:Java 我应该将ehcache.xml放在项目中的什么位置?,java,ehcache,Java,Ehcache,我最近开始使用EHCache进行缓存。我知道如何在Java代码中使用它,但我仍然不确定配置文件 所以,我有一个ear项目,它包括几个war模块。如果所有这些模块都使用ehcache,我应该为每个模块在WEB-INF中放置一份ehcache.xml的副本,还是将其放在ear文件本身的某个地方(可能是META-INF?) 此外,从文档中还不清楚,是否所有这些模块都将使用相同的缓存实例?应用程序部署在glassfish上,EHCache是否会为ear中的每个模块运行相同的缓存,或者每个模块在这样使用时
CacheManager singleton = CacheManager.create();
没有硬性规定可以放入ehcache配置文件。 但是,就我个人而言,我将我的ehcache配置文件与所有其他配置一起保存 和属性文件 例如,我将把ehcache config xml文件的路径存储在某个静态最终变量中(有助于保持路径的可配置性)
上下文配置位置
/WEB-INF/context-config.xml
然后,您可以在该context config.xml文件中添加:
该context config.xml文件可能包含cacheManager bean的描述,您将能够自动连接到需要它的地方。因此context config.xml可能如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:ehcache.xml"/>
</bean>
</beans>
回答你的第二个问题。在我的示例中,这将取决于您将如何定义这个bean,您可以将它定义为一个单例,然后您将只有一个cacheManager实例,或者您可以将实例化留给Spring。
在我看来,您可以使用缓存失效或缓存“创建”的常规逻辑将cacheManager自动连接到类,这将非常有意义。希望我能帮助你
CacheManager manager = new CacheManager(EHCACHE_CONFIG);
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/context-config.xml</param-value>
</context-param>
<import resource="context-config.xml"/>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:ehcache.xml"/>
</bean>
</beans>