spring mvc使用spring ehcache緩存

余生颓废 提交于 2019-12-03 21:44:50

ehcache配置文件: <?xml version="1.0" encoding="UTF-8"?> <!-- /** * * 緩存配置 * @author zyz

ehcache配置文件: 
<?xml version="1.0" encoding="UTF-8"?> 
<!-- 
/** 

* 緩存配置 
* @author zyz 
* @date 2013年7月2日 

*/ --> 
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">  
      
    <diskStore path="java.io.tmpdir" />   
      
    <defaultCache  
            maxElementsInMemory="3000"  
            eternal="false"  
            timeToIdleSeconds="3600"  
            timeToLiveSeconds="3600"  
            overflowToDisk="true"  
            diskPersistent="false"  
            diskExpiryThreadIntervalSeconds="100"  
            memoryStoreEvictionPolicy="LRU"  
            />  
    <cache name="mallListCache"  
           maxElementsInMemory="3000"  
           eternal="false"  
           overflowToDisk="true"  
           timeToIdleSeconds="36000"  
           timeToLiveSeconds="36000"  
           memoryStoreEvictionPolicy="LFU"  
            />  
</ehcache> 


spring配置文件 
application.xml 
<!-- 配置Ehcache緩存 -->  
    <!-- 启動緩存注解功能 --> 
    <cache:annotation-driven cache-manager="cacheManager"/>    
      
    <!-- Spring自己的基於java.util.concurrent.ConcurrentHashMap實現的緩存管理器(該功能是從Spring3.1開始提供的) -->  
     <!-- <bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">  
        <property name="caches">  
            <set>  
                <bean name="myCache" class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean"></bean>  
            </set>  
        </property>  
    </bean>   --> 
     
    <!-- 若只想使用Spring自身提供的緩存器,則注釋掉下面的兩個關於Ehcache配置的bean,並启用上面的SimpleCacheManager即可 -->    
    <!-- Spring提供的基於的Ehcache實現的緩存管理器  -->  
    
     <bean id="ehCacheManagerFactoryBean" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">    
        <property name="configLocation" value="classpath:ehcache-hibernate-local.xml"/>    
    </bean>    
     <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">  
        <property name="cacheManager" ref="ehCacheManagerFactoryBean"></property>  
    </bean> 

service代碼: 
@Override 
@Cacheable(value = "mallListCache") 
public List<Role> getRoleListByName(String roleName) { 
return roleDao.getRoleByName(roleName); 

value值为ehcache.xml配置的name; 

同時執行兩次請求,第一次打印sql,第二次不打印;---成功; 
數據庫更新修改操作時,需要清除緩存數據 
方法加注解即可: 
@CacheEvict(value="mallListCache",allEntries=true) 

更多方法具體参考: 
http://tom-seed.iteye.com/blog/2104430 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!