该版本最酷的新特性就是引入全方位的缓存支持。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.xsd
http://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"/>
如果你看不懂上面的内容,
分享到:
相关推荐
5. 测试与优化:通过测试,观察缓存效果,调整缓存策略,如增加缓存大小、延长有效期等,以达到最佳性能。 总结来说,Spring的二级缓存配置涉及多个层面,包括引入缓存库、设置缓存策略、配置Spring以及在业务代码...
在企业级Java应用开发中,Spring和...总之,合理利用Hibernate的二级缓存机制,结合Spring的管理能力,可以有效地提升Java应用的性能。通过优化缓存配置和策略,可以在不牺牲数据一致性的情况下,达到良好的用户体验。
在IT行业中,缓存是一种非常重要的技术,它可以显著提高应用程序的...这不仅提升了应用性能,也增加了系统的可伸缩性。在实际项目中,根据具体需求和资源,可以灵活调整两者的使用比例,以达到最佳的性能和成本效益。
Spring Cache是Spring Framework提供的一个缓存组件,定义了一些标准接口,通过实现这些接口,就可以通过在方法上增加注解来实现缓存。Spring Cache的核心接口有两个:Cache和CacheManager。Cache接口提供缓存的具体...
Springboot 框架提供了强大的缓存支持,可以通过注解配置方式低侵入的给原有 Spring 应用增加缓存功能,提高数据访问性能。缓存是指将频繁查询的数据存储在内存中,以便下次查询时可以直接从缓存中读取,减少对...
(见下图,为了减少get这几条网络传输,我们会在每个应用服务器上增加本地的ehcache缓存作为二级缓存,即第一次get到的数据存入ehcache,后面output输出即可从本地ehcache中获取,不用再访问redis了,所以就减少了...
在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...
在Spring应用中整合Redis,首先需要在配置文件(如application.properties或yaml)中添加Redis服务器的相关连接信息,包括主机名、端口号、密码等。例如: ``` spring.redis.host=localhost spring.redis.port=...
6. **Test**:提供了对Spring应用的测试支持,包括单元测试和集成测试。 Spring还与其他框架和库紧密集成,如MyBatis、Quartz、Apache CXF等,形成强大的生态系统。 总的来说,Spring框架凭借其灵活性、模块化和...
Spring Cache 是 Spring 框架的一个重要组成部分,它提供了一种在应用程序中统一管理缓存的能力,无需依赖特定的缓存实现,如 Ehcache、Redis 或 Hibernate 二级缓存等。通过 Spring Cache,开发者可以方便地在方法...
通过这种方式,Spring 将 Ehcache 整合进应用程序,使得开发者可以方便地管理和使用缓存,无需关注缓存的具体实现细节。 总结,Spring 与 Ehcache 的整合使得我们可以充分利用 Ehcache 的性能优势,同时享受 Spring...
13. **spring-mock.jar**:这是一个专门用于单元测试的jar包,提供了模拟HTTP请求的能力,帮助开发者更容易地测试Spring应用程序中的控制器和其他Web组件。 #### 总结 从Spring2.0到Spring2.5及以后的版本,Spring...
4. **Spring Boot**: Spring Boot简化了Spring应用程序的初始化和配置,提供了一种快速启动和运行应用的方式。 **Mybatis框架** Mybatis是一个轻量级的持久层框架,它消除了几乎所有的JDBC代码和手动设置参数,让...
在Spring Security出现之前,传统的Web应用安全开发通常采用自定义的方式来实现,这不仅增加了开发成本,而且难以维护。例如,在Struts 1.x时代,开发者通常通过继承`AbstractBaseAction`来实现安全控制逻辑,或者...
26. `org.springframework.boot`:Spring Boot,简化了Spring应用的初始设置和配置,提供了自动配置和"起步依赖"。 这26个包构成了Spring框架的核心,它们相互协作,为开发者提供了强大的功能和灵活性,使得在Java...
在本文中,我们将探讨如何在Spring Boot应用中集成Redis缓存来存储和验证手机验证码。首先,我们讨论了三种常见的验证码存储方式: 1. **Session存储**:将验证码放入用户的Session中,并设置一个适当的过期时间。...
4. **Cache Schema**: `cache` schema为Spring应用提供缓存支持,例如支持 EhCache、Guava Cache 或 Hazelcast 等缓存解决方案。通过配置,可以定义哪些方法的结果应被缓存,以及缓存策略,如过期时间、大小限制等。...
提供了对流行ORM(对象关系映射)框架的集成,如Hibernate和JPA,使得在Spring应用中使用ORM变得更加简单。 8. **org.springframework.aop-3.0.5.RELEASE.jar**: 实现了面向切面编程(AOP),允许定义横切关注点...
- **Caching**:Spring 3.1.2 增加了缓存抽象,支持多种缓存实现,如 EhCache、Guava 等,便于在应用中实现高效的缓存策略。 总的来说,"spring-3.1.2 包含 jar 包文件" 提供了构建基于 Spring 的 Java 应用程序所...