`

Spring 3.1 M1 中的缓存功能

 
阅读更多

本文转自:http://www.oschina.net/question/12_16549

上个月 Spring 发布了 3.1 的第一个里程碑版本,详情请看这里

该版本最酷的新特性就是引入全方位的缓存支持。Spring 3.1 提供了对已有的 Spring 应用增加缓存的支持,这个特性对应用本身来说是透明的,通过缓存抽象层,使得对已有代码的影响降低到最小。

该缓存机制针对于 Java 的方法,通过给定的一些参数来检查方法是否已经执行,Spring 将对执行结果进行缓存,而无需再次执行方法。

可通过下列配置来启用缓存的支持(注意使用新的schema):

 

  1. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  2.   xmlns:cache="http://www.springframework.org/schema/cache" 
  3.    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
  4.         http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd"> 
  5.    
  6.   <cache:annotation-driven /> 
  7.   ...  
  8. </beans> 

接下来可使用 @Cacheable 和 @CacheEvict 来对缓存进行操作。

 

  1. @Cacheable("persons")  
  2. public Person profile(Long personId) { ... } 

以上代码声明了一个名为 persons 的缓存区域,当调用该方法时,Spring 会检查缓存中是否存在 personId 对应的值。

也可以指定多个缓存区域,当你在应用有需要这样做的话:

 

  1. @Cacheable({"persons""profiles"})  
  2. public Person profile(Long personId) { ... } 

当指定多个区域时,Spring 会一个个的检查,一旦某个区域存在指定值时则返回。

而 @CacheEvict 则用来从缓存中清除数据,例如:

 

  1. @CacheEvict (value = "persons", allEntries=true)  
  2. public List<Person> listPersons() 

@CacheEvict 可以指定清除缓存的条件。

还可以指定缓存的Key:

 

  1. @Cacheable(value="persons", key="personId")  
  2. public Person profile(Long personId, Long groundId) { ... } 

或者根据条件决定是否缓存:

 

  1. @Cacheable(value="persons", condition="personId > 50")  
  2. public Person profile(Long personId) { ... } 

缓存管理器的配置:

 

  1. <!-- generic cache manager --> 
  2. <bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager"> 
  3.   <property name="caches"> 
  4.     <set> 
  5.       <bean class="org.springframework.cache.concurrent.ConcurrentCacheFactoryBean" p:name="default"/> 
  6.       <bean class="org.springframework.cache.concurrent.ConcurrentCacheFactoryBean" p:name="persons"/> 
  7.     </set> 
  8.   </property> 
  9. </bean> 

基于 Ehcache 缓存的配置:

 

  1. <bean id="cacheManager" class="org.springframework.cache.ehcache.EhcacheCacheManager" p:cache-manager="ehcache"/> 
  2.    
  3. <!-- Ehcache library setup --> 
  4. <bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:config-location="ehcache.xml"/>  

如果你看不懂上面的内容,那请看 洋文版

分享到:
评论

相关推荐

    Spring 3.1 jar包

    Spring 3.1 是Spring框架的一个重要版本,它在前一版本的基础上引入了许多新特性、增强功能和性能优化。这个jar包是Spring框架的核心组成部分,包含了许多用于构建企业级Java应用的类库和API。 首先,Spring 3.1 ...

    spring 3.1的 源码

    8. **缓存抽象**:Spring 3.1引入了统一的缓存抽象,支持EhCache、GemFire等多种缓存实现,简化了缓存的管理和使用。 9. **异步处理**:Spring 3.1提供了异步方法调用的能力,通过`@Async`注解,开发者可以轻松地...

    最新 spring3.1 完整jar包

    在这个“最新 spring3.1 完整jar包”中,包含了Spring框架的所有核心组件和其他相关模块,确保了开发环境的完备性。 1. **核心容器**:Spring的核心在于其IoC(Inversion of Control)容器,它负责管理应用对象的...

    spring3.1源码包

    Spring 框架是Java开发领域中的一个基石,它的出现极大地简化了企业级应用的构建。Spring 3.1 版本是该框架...通过深入理解Spring 3.1的各个模块及其功能,开发者能够更好地利用这个框架来构建高效、稳定的企业级应用。

    spring3.1 jar全集

    在这个"spring3.1 jar全集"中,我们包含了Spring的核心组件和其他关键模块,如AOP(面向切面编程)和Beans模块。 首先,让我们深入了解一下Spring Core。这是Spring框架的基础,提供了依赖注入(DI)和控制反转...

    spring3.1相关配置文件

    这些只是Spring 3.1中部分重要的配置和功能。通过提供的压缩包文件,你可以深入了解Spring框架如何配置和使用,从而提升你的Java开发技能。在实际项目中,结合具体需求,灵活运用这些知识,能够构建出高效、可维护的...

    spring3.1完整包

    这个"spring3.1完整包"包含了Spring框架的多个核心模块,下面将详细介绍这些模块及其功能。 1. **org.springframework.context-3.1.0.M1.jar**:这是Spring上下文模块,提供了容器的核心功能,包括Bean的定义、配置...

    spring3.1需要的jar包

    标题中的“spring3.1需要的jar包”指的是在使用Spring框架版本3.1时所需的外部依赖库。Spring是一个开源的Java平台,它为构建企业级应用提供了全面的框架支持,包括依赖注入(DI),面向切面编程(AOP),以及用于...

    spring3.1开发宝典

    Spring3.1对Java5进行了全面的更新,利用了Java5中的新特性,如泛型、枚举和注解,这使得代码更加类型安全且易于维护。 #### 2.2 改进的文档 Spring3.1的文档得到了显著的改进,提供了更清晰的示例和解释,帮助...

    spring3.1所需的全部jar包

    Spring 3.1是该框架的一个重要版本,它引入了许多增强功能和优化,提高了开发效率和应用性能。这个压缩包包含了运行Spring 3.1应用程序所需的所有jar文件,确保了环境的完整性和兼容性。 首先,Spring的核心库`...

    Spring3.1 AOP倚赖jar 包汇总

    Spring 3.1是Spring框架的一个重要版本,它在企业级Java应用开发中扮演着核心角色。AOP(面向切面编程)是Spring框架的重要特性,允许开发者将关注点分离,比如日志、事务管理等,从核心业务逻辑中解耦出来。本...

    Spring3.1AOP简单例子

    在本示例中,我们将深入探讨Spring框架的3.1版本中的核心概念之一:面向切面编程(Aspect-Oriented Programming,简称AOP)。AOP是Spring框架的强大特性,它允许我们在应用程序中实现关注点的分离,使得我们可以将横...

    spring3.1 官方全部jar包

    spring3.1官方所有的jar包 org.springframework.aop-3.1.RELEASE.jar org.springframework.asm-3.1.RELEASE.jar org.springframework.aspects-3.1.RELEASE.jar org.springframework.beans-3.1.RELEASE.jar org....

    spring3.1+xfire1.26

    在"spring3.1+xfire1.26 全注解"这个项目中,开发者利用Spring 3.1的注解特性来配置和管理应用程序组件,以及XFire 1.26来处理Web服务的创建和交互。全注解意味着不再需要XML配置文件,而是直接在Java类和方法上使用...

    spring 3.1中的cache小结

    在Spring 3.1版本中,引入了对缓存的支持,极大地提高了应用程序的性能和效率。这个特性使得开发者能够方便地在应用中集成缓存机制,而无需深入了解底层缓存库的实现细节。本文将围绕Spring 3.1的缓存功能进行详细...

    Spring3.1 MongoDB整合实例(含jar包)已测

    本文将深入探讨如何在Spring 3.1版本中整合MongoDB,以及提供的jar包资源。 首先,Spring 3.1对MongoDB的支持主要体现在Spring Data MongoDB项目中,它提供了一套完整的抽象层,简化了与MongoDB的交互。Spring Data...

    spring3.1官方手册英文版

    Spring 3.1支持面向切面编程,提供声明式事务管理、日志记录、性能监控等功能。AOP允许开发者定义“切面”,这些切面可以封装横切关注点,如事务处理,从而减少代码重复。 3. **Bean管理** 在Spring中,业务对象...

    struct2.3+spring3.1+mybits3.1 核心Jar包和配置文件

    Spring3.1是另一个关键组件,它是一个全面的企业级应用开发框架,提供依赖注入(DI)、面向切面编程(AOP)、事务管理等功能。`applicationContext.xml`是Spring的核心配置文件,用于定义bean的实例化、装配和管理,...

    Spring3.1Jar包

    总的来说,Spring3.1Jar包是一个包含Spring框架多个组件的集合,适用于需要依赖注入、AOP、Web MVC等功能的Java项目。通过合理使用这些组件,开发者可以构建出高效、灵活的应用程序,同时享受到Spring提供的强大支持...

Global site tag (gtag.js) - Google Analytics