缓存spring文件的配置:

xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"

xmlns:cache="http://www.springframework.org/schema/cache"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd

            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd

            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd

            http://www.springframework.org/schema/cache  

http://www.springframework.org/schema/cache/spring-cache-3.2.xsd"

default-lazy-init="true">

 

<context:component-scan base-package="zyl.mybatisspring.**.service" />

<cache:annotation-driven cache-manager="cacheManager" />

 

 

<bean id="cacheManagerFactory"

    class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">

    <property name="configLocation" value="classpath:ehcache.xml" />

bean>

<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">

    <property name="cacheManager" ref="cacheManagerFactory" />

bean>


beans>

 

 

 

注意点:

1、在哪层使用,就在哪层进行配置。大部分都是在Service层进行使用的,所以cache的配置应该写在Service层的配置文件中,如果每层的文件不是分的很清晰,那么cache的配置还是和Service的注解配置放在一块比较好。

2、使用缓存时有两种配置方法,一种是使用spring3.1 后自带的cache机制,另一种就是引入专门的缓存技术,例如Ehcache,配置方法见上面的详细配置及说明。

3、Service层使用缓存注解时,value值必须是spring配置文件或者ehcache配置中cache名称,可以配置多个名称。

4、正确使用@Cacheable@CachePut@CacheEvict 注释

 

详细内容可以参考:http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/

 

 

如果使用ehcache进行配置,那么 Ehcache.xml的配置示例:

xml version="1.0" encoding="UTF-8"?>  

<ehcache dynamicConfig="false" monitoring="off" updateCheck="false"  

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd">  

      

      

    <defaultCache eternal="false" maxEntriesLocalHeap="0" timeToIdleSeconds="300" timeToLiveSeconds="300"/>  

    <cache name="myCache" maxEntriesLocalHeap="1000" />   

     

ehcache>