@Cacheable在项目中的具体使用

Posted java-ssh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Cacheable在项目中的具体使用相关的知识,希望对你有一定的参考价值。

①在applicationContext.xml中引入

<import resource="classpath:/config/applicationContext-ehcache.xml"/>

②配置applicationContext-ehcache.xml文件

<?xml version="1.0" encoding="UTF8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context"  
    xmlns:oxm="http://www.springframework.org/schema/oxm" 
    xmlns:mvc="http://www.springframework.org/schema/mvc"  
    xmlns:ehcache="http://www.springframework.org/schema/cache"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans   
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd    
       http://www.springframework.org/schema/context   
       http://www.springframework.org/schema/context/spring-context-3.0.xsd    
       http://www.springframework.org/schema/oxm   
       http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd    
       http://www.springframework.org/schema/mvc   
       http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd    
       http://www.springframework.org/schema/cache  
       http://www.springframework.org/schema/cache/spring-cache.xsd">  
  
    <!-- 支持缓存注解 cache-manager默认为cacheManager,如果定义bean的id为cacheManeger,此处可以省略 -->    
    <ehcache:annotation-driven cache-manager="cacheManager" />  
  
    <!--  缓存工厂,指定ehcache.xml位置-->  
    <bean id="cacheManagerFactory" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">      
        <property name="configLocation">
            <value>classpath:/config/ehcache.xml</value>
        </property>   
    </bean>     
        
    <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">      
        <property name="cacheManager"  ref="cacheManagerFactory"/>      
    </bean>      
</beans>  

 

③配置ehcache.xml文件

<?xml version="1.0" encoding="UTF8"?>  
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" updateCheck="false">  
    <defaultCache eternal="true" maxElementsInMemory="100" overflowToDisk="false" />  
    <!-- 缓存配置-->  
    <cache name="queryCache" maxElementsInMemory="2000" eternal="false" timeToIdleSeconds="900" timeToLiveSeconds="1800" overflowToDisk="true" />  
    <cache name="deleteCache" maxElementsInMemory="2000" eternal="false" timeToIdleSeconds="900" timeToLiveSeconds="1800" overflowToDisk="true" /> 
    <cache name="menuCache" maxElementsInMemory="2000" eternal="false" timeToIdleSeconds="900" timeToLiveSeconds="1800" overflowToDisk="true" /> 
    <cache name="indexPageCache" maxElementsInMemory="2000" eternal="false" timeToIdleSeconds="900" timeToLiveSeconds="1800" overflowToDisk="true" />
    <cache name="newsCache" maxElementsInMemory="2000" eternal="false" timeToIdleSeconds="900" timeToLiveSeconds="1800" overflowToDisk="true" />
</ehcache>

 

以上是关于@Cacheable在项目中的具体使用的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot的Cacheable缓存问题一则

SpringBoot的Cacheable缓存问题一则

SpringBoot的Cacheable缓存问题一则

Spring @Cacheable注解 && 事务@Transactional 在同一个类中的方法调用不生效

从 Fragment 中的适配器(recyclerview)获取所有项目

记录一次@Cacheable导致死锁问题排查过程