spring cache的集成-(开源-程序员的春天)

把近期整合spring cache的文档发成博客,因为我相信 开源-程序员的春天!

2.6 数据库二级缓存(spring cache)

Spring 3.1起,提供了注解Cache支持,且提供了Cache抽象;在此之前一般通过AOP实现;使用Spring Cache的好处:

提供基本的Cache抽象,方便切换各种底层Cache(他这么说,我们就提供两种底层框架ehcacheredis)

通过注解Cache可以实现类似于事务一样,缓存逻辑透明的应用到我们的业务代码上,且只需要更少的代码就可以完成;

提供事务回滚时也自动回滚缓存;支持比较复杂的缓存逻辑;

2.6.1 ehcache的配置使用

EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider

Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持RESTSOAP api等特点

那我们配置是由applicationContext-ehcache.xmlehcache.xml构成

 

 

 

 

2.6.2 redis(spring cache)的配置使用

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010315日起,Redis的开发工作由VMware主持。业务逻辑层(Service层)

redis的客户端实现、主要分为spring-redis-data jredis,我们框架采用的和spring结合的就是spring-redis-data

配置文件applicationContext-rediscache.xml

 

 

 

2.6.3 spring cache注解使用
@Cacheable

应用到读取数据的方法上,即可缓存的方法,如查找方法:先从缓存中读取,如果没有再调用方法获取数据,然后把数据添加到缓存中:

 

 

@CachePut 

应用到写数据的方法上,如新增/修改方法,调用方法时会自动把相应的数据放入缓存:即调用该方法时,会把#account.getName()作为key,返回值作为value放入缓存;

 

 

@CacheEvict 

即应用到移除数据的方法上,如删除方法,调用方法时会从缓存中移除相应的数据:

 

 

猜你喜欢

转载自deng520159.iteye.com/blog/2183987