SpringCache的基本使用与实现原理详解-创新互联
Spring Cache 概念
从Spring 3.1版本开始,提供了一种透明的方式来为现有的Spring 应用添加cache,使用起来就像@Transaction一样。在应用层面与后端存储之间,提供了一层抽象,这层抽象目的在于封装各种可插拔的后端存储( Ehcache Guava Redis),最小化因为缓存给现有业务代码带来的侵入。
Spring 的缓存技术还具备相当的灵活性。不仅能够使用 SpEL(Spring Expression Language)来定义缓存的 key 和各种 condition,还提供开箱即用的缓存暂时存储方案,也支持和主流的专业缓存比如 EHCache 集成。
其特点总结例如以下:
- 通过少量的配置 annotation 凝视就可以使得既有代码支持缓存
- 支持开箱即用 Out-Of-The-Box,即不用安装和部署额外第三方组件就可以使用缓存
- 支持 Spring Express Language,能使用对象的不论什么属性或者方法来定义缓存的 key 和 condition
- 支持 AspectJ,并通过事实上现不论什么方法的缓存支持
- 支持自己定义 key 和自己定义缓存管理者,具有相当的灵活性和扩展性
设计理念
正如Spring框架的其它服务一样,Spring cache 首先是提供了一层抽象,核心抽象主要体现在两个接口上
org.springframework.cache.Cache
org.springframework.cache.CacheManager
Cache代表缓存本身
CacheManager代表对缓存的处理和管理等。抽象的意义在于屏蔽实现细节的差异和提供扩展性,这一层Cache的抽象解耦了缓存的使用和缓存的后端存储,这样后续可以方便的更换后端存储。
使用Spring Cache分三步:
- 声明缓存
- 开启Spring的cache功能
- 配置后端的存储
声明缓存
@Cacheable("books") public Book findBook(ISBN isbn) {...}
网页标题:SpringCache的基本使用与实现原理详解-创新互联
文章起源:http://ybzwz.com/article/dcpcie.html