注解驱动的缓存
来源:互联网 发布:地下城与勇士台服源码 编辑:程序博客网 时间:2024/05/16 14:52
5.7.3 注解驱动的缓存
除了前面介绍的基于XML的缓存配置,Spring Modules还支持使用代码级元数据声明缓存。这种支持有两种形式:
Java 5注解:如果目标环境是Java 5平台,这就是很理想的解决方案。
Jakarta公共属性:如果目标环境是Java 5以前的平台,就应该选择它。
对于RoadRantz程序来说,其目标环境是Java 5,所以我们要使用Java 5注解来声明DAO层的缓存。对于缓存,Spring Modules提供了两个注解:
@Cacheable:声明一个方法的返回值应该被缓存。
@CacheFlush:声明一个方法是清空缓存的触发器。
利用@Cacheable注解,我们可以像下面这样把getRantsForDay()声明为要被缓存的:
modelId属性指定用于缓存方法返回值的模型,稍后我们介绍说明如何定义缓存模型,现在先来看一看如何使用@CacheFlush来指定saveRant()被调用时的缓存清空操作:
modelId属性指定的刷新模型会在saveRant()方法被调用时被清空。
既然说到缓存模型和刷新模型,那么它们是从何而来的呢?元素被用于启动Spring Modules对注解的支持,我们会在roadrantzcache.xml文件里像下面这样配置它:
在元素里,必须配置至少一个元素,它就定义了一个缓存模型。简单来说,缓存模型基本上就是对ehcache.xml里配置的一个缓存的引用。本例中,我们把rantzCacheModel与名为rantzCache的缓存关联起来,这样一来,任何modelId是rantzCacheModel的@Cacheable都会使用名为rantzCache的缓存。
刷新模型与缓存模型相当类似,只是它引用的是要被刷新的缓存。下面使用元素创建一个名为rantzFlushModel的刷新模型:
设置缓存模型与刷新模型的不同之处在于,刷新模型不仅决定要清空哪个缓存,还决定了何时清空。在默认情况下,缓存是在@CacheFlush注解的方法被调用之后清空的,但我们可以通过指定<ehcache:flushing>的when属性来改变:把when属性设置为before之后,缓存就会@CacheFlush注解的方法被调用之前清空。
- 注解驱动的缓存
- Spring的缓存注解
- @Cacheable 缓存注解的用法
- Spring3.0的缓存注解
- Spring的注解驱动控制程序
- SpringMVC--注解驱动的控制器
- spring注解缓存的使用方式
- spring4配置基于注解的ehcache缓存
- 基于注解的SpringAOP Redis缓存技术
- Spring 缓存注解@Cacheable的用法
- javaee之hibernate的缓存与注解
- Spring 缓存注解@Cacheable的用法
- spring缓存注解的condition属性
- Spring 缓存注解@Cacheable的用法
- Spring 缓存注解@Cacheable的用法
- spring集成redis缓存的注解实现
- Spring @cacheable注解实现的缓存
- mybatis注解配置缓存的方法
- JAR文件包及jar命令详解
- 函数的覆盖
- 在Unity3D中使用ScriptableObject进行序列化
- java 网络编程 UDP
- Monostate模式——兼谈Singleton模式
- 注解驱动的缓存
- ZLIB Compressed Data Format Specification version 3.3
- 优化网站页面小技巧—让搜索引擎更容易找到你的页面! 同行广场
- Android APK反编译详解(附图)
- 《DB 查询分析器》使用技巧之(四)
- Android系统的reboot之我见
- curl 库的使用
- 函数的隐藏
- IA-32体系结构CPU保护模式常见误区