ehcache不工作

时间:2012-05-21 07:51:21

标签: xml spring-mvc ehcache

您好我正在我的应用程序中实现基于注释的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>

1 个答案:

答案 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;

这是我的应用程序,它应该可以工作。