介绍 Spring 3.1 M1 中的缓存功能
介绍 Spring 3.1 M1 中的缓存功能- 中文版 (转)
Spring 3.1 提供了对已有的 Spring 应用增加缓存的支持,这个特性对应用本身来说是透明的,通过缓存抽象层,使得对已有代码的影响降低到最小。
该缓存机制针对于 Java 的方法,通过给定的一些参数来检查方法是否已经执行,Spring 将对执行结果进行缓存,而无需再次执行方法。
可通过下列配置来启用缓存的支持(注意使用新的schema):
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:cache="http://www.springframework.org/schema/cache"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd"><cache:annotation-driven />... </beans>
接下来可使用 @Cacheable 和 @CacheEvict 来对缓存进行操作。
@Cacheable("persons") public Person profile(Long personId) { ... }
以上代码声明了一个名为 persons 的缓存区域,当调用该方法时,Spring 会检查缓存中是否存在 personId 对应的值。
也可以指定多个缓存区域,当你在应用有需要这样做的话:
@Cacheable({"persons", "profiles"}) public Person profile(Long personId) { ... }
当指定多个区域时,Spring 会一个个的检查,一旦某个区域存在指定值时则返回。
而 @CacheEvict 则用来从缓存中清除数据,例如:
@CacheEvict (value = "persons", allEntries=true) public List<Person> listPersons()
@CacheEvict 可以指定清除缓存的条件。
还可以指定缓存的Key:
@Cacheable(value="persons", key="personId") public Person profile(Long personId, Long groundId) { ... }
或者根据条件决定是否缓存:
@Cacheable(value="persons", condition="personId > 50") public Person profile(Long personId) { ... }
缓存管理器的配置:
<!-- generic cache manager --> <bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager"><property name="caches"><set><bean class="org.springframework.cache.concurrent.ConcurrentCacheFactoryBean" p:name="default"/><bean class="org.springframework.cache.concurrent.ConcurrentCacheFactoryBean" p:name="persons"/></set></property> </bean>
基于 Ehcache 缓存的配置:
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhcacheCacheManager" p:cache-manager="ehcache"/><!-- Ehcache library setup --> <bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:config-location="ehcache.xml"/>
如果你看不懂上面的内容,那请看 洋文版 或者
官方文档:http://static.springsource.org/spring/docs/3.1.0.M1/spring-framework-reference/html/cache.html。
转载于:https://www.cnblogs.com/lhj588/archive/2012/01/13/2321769.html
介绍 Spring 3.1 M1 中的缓存功能相关推荐
- mysql jpa缓存,如何在Spring Data JPA CRUDRepository中添加缓存功能
I want to add "Cacheable" annotation in findOne method, and evict the cache when delete or ...
- spring 5.x(1)-----Spring Framework 5.x中的新功能
Spring Framework 5.x中有什么新功能 5.1版中的新功能 一般核心修订 基础设施: 在类路径和模块路径上对JDK 11的无警告支持. 支持Graal原生图像约束(反射,参数名称). ...
- Spring Framework 4.2 中的新功能和增强功能
至今为止,Spring Framework 的最新版本为 4.2.1.RELEASE. 那么 Spring Framework 4.2 中的又有哪些新功能和增强功能呢? 核心容器改进 如 @bean ...
- iOS 设置中清除缓存功能
绝大多数应用中都存在着清楚缓存的功能,形形色色,各有千秋,现为大家介绍一种最基础的清除缓存的方法.清除缓存基本上都是在设置界面的某一个Cell,于是我们可以把清除缓存封装在某一个自定义Cell中,如下 ...
- 谈谈MVC项目中的缓存功能设计的相关问题
今天这一篇文章我来谈一谈在MVC 3项目中的缓存功能,以及针对缓存的一些设计上的考量,给大家参考参考 前言 为什么需要讨论缓存?缓存是一个中大型系统所必须考虑的问题.为了避免每次请求都去访问后台的资源 ...
- 全面认识一下.NET 4.0的缓存功能
很多关于.NET 4.0新特性的介绍,缓存功能的增强肯定是不会被忽略的一个重要亮点.在很多文档中都会介绍到在.NET 4.0中,缓存功能的增强主要是在扩展性方面做了改进,改变了原来只能利用内存进行缓存 ...
- ASP.NET MVC:缓存功能的设计及问题
ASP.NET MVC:缓存功能的设计及问题 这是非常详尽的asp.net mvc中的outputcache 的使用文章. [原文:陈希章 http://www.cnblogs.com/chenxiz ...
- php excel 函数,php实现excel中rank函数功能的方法
php实现excel中rank函数功能的方法 发布于 2015-10-28 18:54:25 | 77 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hyperte ...
- C#6中的新增功能 【Unity3D亲测】
随着Unity2017的普及,使用.NET 4X的开发者也越来越多了,下面笔者给大家介绍一下在C# 6中的新功能主要是怕自己忘记,2333,有些功能还是很实用的~ 使用Unity版本2018.2.9f ...
最新文章
- 25个常用Matplotlib图的Python代码,收藏收藏!
- 20172313 2017-2018-2 《程序设计与数据结构》第十周学习总结
- android拨打电话
- 突发!百度CEO李彦宏被当中泼了一瓶水,肇事者网名:直男上树
- SpringCloud入门(一)
- 零侵入性:一个注解,优雅的实现循环重试功能
- Win10 如何配置JDK环境变量
- 科润酒吧点单系统服务器配置,那些牛逼的酒吧都用什么管理系统?
- 独家首发成语类智力多玩法微信小程序源码下载好玩而又强大
- 编译全志A31出现的错误
- 计算机毕业设计php的人事档案管理系统
- lamp技术_LAMP技术简介:
- php调用nexmo发送短信,使用Nexmo或Twilio仅使用电话号码进行登录和验证
- MacOS配置go环境
- 微信支付 商户号该产品权限未开通,请前往商户平台
- 在Keil4中新建51单片机工程模板详细步骤
- python ipad pro_离开 PC,在 iPad Pro 上也能编程了?
- 雷电模拟器python编程接口_【Python】雷电模拟器说明[附代码]
- 多元函数的泰勒级数展开公式
- 什么是虚拟机?Mac电脑怎么使用虚拟机安装双系统?
热门文章
- python剑指offer面试题_剑指Offer(Python语言)面试题38
- 数值分析 使用c语言 源码_分析源码,学会正确使用 Java 线程池
- 面向对象设计思想-C语言
- 自定义日历控android,Android自定义日历Calender代码实现
- mysql 排序 过滤_【MYSQL】-3 排序与过滤
- qq数据泄露_真良心,腾讯这个app竟然能查账号泄露
- 奇奇seo优化软件_西藏seo关键词优化软件
- tensorflow 小于_坐姿不对,屏幕就变模糊!教你用TensorFlow做一款“隐形背背佳”...
- pat 乙级 1047 编程团体赛(C++)
- 【渝粤教育】国家开放大学2018年秋季 1080t工程数学(本) 参考试题