您好我正在我的应用程序中实现基于注释的ehcache。我正在服务层实现这个,我正在使用DetachedCriteria进行查询,但是ehcache不能正常工作。任何人都可以对此有所了解吗?请帮助我或建议我采取其他方式来做到这一点。 提前致谢
在ehcache.xml中
<defaultCache eternal="true" maxElementsInMemory="100" overflowToDisk="false" />
<cache name="loadAll" maxElementsInMemory="1000" eternal="true" overflowToDisk="false" />
</ehcache>
服务层上的我正在使用
@Cacheable(cacheName="loadAll")
List<ShiftDetail> loadAll(DetachedCriteria detachedCriteria);
并在applicationContext.xml中将ehcache映射为
<ehcache:annotation-driven create-missing-caches="true" cache-manager="cacheManager" />
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" >
<property name="configLocation" value="/WEB-INF/ehcache.xml"/>
</bean>
答案 0 :(得分:0)
我希望您已完成以下步骤
1.您需要具有正确配置的 ehcache.xml 文件。可以找到示例here
2.在springapplicationcontext.xml中,查看您是否在beans标记中添加了正确的 xsd 。
样本正确配置如下所示:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cache="http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring
http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring-1.2.xsd
">
<cache:annotation-driven />
<bean id="cacheManager"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="/WEB-INF/xml/spring/ehcache.xml" />
</bean>
</beans>
现在,在您的方法中使用@Cacheable
import com.googlecode.ehcache.annotations.Cacheable;
这是我的应用程序,它应该可以工作。