Spring Module下配置缓存的两种方法

关键字: spring, 缓存

以EhCache为例说明缓存的配置方法:

第一种方法,配置Spring配置文件,使用AOP处理缓存

1)添加Provider,初始化CacheManager

Xml代码 复制代码
  1. <!--  
  2. Thecreatedcachemanagerisaninstanceofnet.sf.ehcache.CacheManager  
  3. -->  
  4. <beanidbeanid="cacheManager"  
  5. class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">  
  6. </bean>  
  7. <beanidbeanid="cacheProviderFacade"  
  8. class="org.springmodules.cache.provider.ehcache.EhCacheFacade">  
  9. <propertynamepropertyname="cacheManager"ref="cacheManager"/>  
  10. </bean>  

 2)在ehcache.xml增加一个缓存

增加一个name为testCache的缓存。

Xml代码 复制代码
  1. <cache name="testCache"  
  2.            maxElementsInMemory="20000"  
  3.            maxElementsOnDisk="1000"  
  4.            eternal="true"  
  5.            overflowToDisk="true"  
  6.            memoryStoreEvictionPolicy="LFU"  
  7.     />  

 

 

3)配置缓存

Xml代码 复制代码
  1. <bean id="testService"  
  2.  class="org.springmodules.cache.interceptor.proxy.CacheProxyFactoryBean">  
  3.  <property name="cacheProviderFacade" ref="cacheProviderFacade" />  
  4.  <property name="cachingModels">  
  5.   <props>  
  6.    <prop key="find*">cacheName=<STRONG>testCache(a)</STRONG></prop>  
  7.    <prop key="is*">cacheName=testCache</prop>  
  8.   </props>  
  9.  </property>  
  10.  <property name="flushingModels">  
  11.   <props>  
  12.    <prop key="insert*">cacheNames=testCache</prop>  
  13.    <prop key="delete*">cacheNames=testCache</prop>  
  14.    <prop key="update*">cacheNames=testCache</prop>  
  15.   </props>  
  16.  </property>  
  17.  <property name="target" ref="<STRONG>testServiceTarget(b)</STRONG>" />  
  18. </bean>  

 

其中(a)为第2步定义的cache的名字,(b)为需要缓存的bean的id。

 

这样,第一种方式就配置好了。

 

第二种方法,使用Annotations的配置方式。

1)同第一种方法1)。

2)同第二种方法2)。

3)在需要处理缓存的方法前面配置Annotion

@Cacheable(modelId="testCache")//写在方法前面就会缓存方法的返回结果

@CacheFlush(modelId="testFlushing")//写在方法前面,就会在执行该函数时清除缓存里面的数据。

这样第二种方法也完成了。

第一种方法在flush的时候可以同时flush多个缓存。第二种方法只能flush一个缓存,而且第一种方法只需要修改Spring配置文件即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringModule是一个在Spring框架中扮演重要角色的类。它是用来管理和加载模块的。另外,SpringModule是基于模块管理器(ModuleManager)和模块服务(ModuleService)提供的接口来实现的。它的核心功能是处理模块的生命周期和依赖关系。从最基础的SpringModule开始,它是Spring框架中的核心组件之一。它与其他模块一起构成了Spring的核心容器(Core Container)。核心容器由spring-core、spring-beans、spring-context、spring-context-support和spring-expression(Spring表达式语言)模块组成。除了核心容器外,还有spring-webmvc模块,它提供了Spring的模型-视图-控制器(MVC)和REST Web服务实现,用于Web应用程序。Spring的MVC框架提供了领域模型代码和Web表单之间的清晰分离,并与Spring框架的其他功能集成。综上所述,SpringModuleSpring框架中负责管理和加载模块的类,它与其他核心模块一起构成了Spring的核心容器,并为Web应用程序提供了MVC和REST Web服务的实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Jarslink源码解析-----SpringModule](https://blog.csdn.net/bigdogLIU/article/details/112343907)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Spring modules介绍](https://blog.csdn.net/tanga842428/article/details/52875673)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值