Spring Cache使用详解
Spring Cache
- @Cache(value="Cx")//Cache是指定在Cx上面的 或者指定多个@Cache(value={"Cx","Cx1"})
- public User getUser(String id){
- return .....;
- }
-----------------------key:自定义key
- @Cacheable(value="users", key="#id")
- public User find(Integer id) {
- returnnull;
- }
- @Cacheable(value="users", key="#user.id")
- public User find(User user) {
- returnnull;
- }
除了上面使用方法参数作为Key以外,Spring还为我们提供了一个root对象可以生成key。通过root对象我们还可以获取到
- @Cacheable(value={"users"}, key="#user.id", condition="#user.id%2==0")
这个则是当用户id为偶数的时候才会缓存。
- @Caching(cacheable=@Cacheable("users"),evict={@CacheEvict("cache2"),@CacheEvict(value="cache3",allEntries=true)})<span style="font-family: Arial, Helvetica, sans-serif;"> </span>
- @Target({ElementType.TYPE, ElementType.METHOD})
- @Retention(RetentionPolicy.RUNTIME)
- @Cacheable(value="users")
- public @interface MyCacheable {
- }
我们在需要缓存的方法上面使用@MyCacheable可以达到同样的缓存效果。
- <cache:advice id="cacheAdvice" cache-manager="cacheManager">
- <cache:caching cache="users">
- <cache:cacheable method="findById" key="#p0"/>
- <cache:cacheable method="find" key="#user.id"/>
- <cache:cache-evict method="deleteAll" all-entries="true"/>
- </cache:caching>
- </cache:advice>
cache-manager默认是cacheManager。其中指定了将findById和find方法缓存到users中。也可以使用通配符“*”
- <aop:config proxy-target-class="false">
- <aop:advisor advice-ref="cacheAdvice" pointcut="execution(* com.xxx.UserService.*(..))"/>
- </aop:config>
- <bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
- <property name="caches">
- <set>
- <bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="xxx"/>
- </set>
- </property>
- </bean>
p:name则是我们在注解时候使用的value(也就是使用的哪个cache)。
- <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager" p:cache-manager-ref="ehcacheManager"/>
- <bean id="ehcacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:config-location="ehcache-spring.xml"/>
它是通过指定的ehcache配置文件来生成的一个Ehcache的CacheManager。若未指定则默认规则取classpath路径下的ehcache文件,若还是不存在则取Ehcache对应包的ehcache-failsafe.xml文件作为配置文件。
转载于:https://www.cnblogs.com/duyinqiang/p/5696309.html
Spring Cache使用详解相关推荐
- Spring cache 注解详解
spring cache注解的使用: @CacheConfig 类级别的缓存注解,允许共享缓存名称 @Caching 将多种缓存操作分组 @Cacheable 触发缓存入口 @CacahePut 更新 ...
- Spring Cache 注解详解
@CacheConfig:在类上面统一定义缓存的名字,方法上面就不用标注了,表示该类所有的方法都是支持缓存的,我们一般不使用该注解,直接通过@Cacheable自己配置缓存集的名字来定义. @Cach ...
- 开启注解缓存_Spring Boot 2.x基础教程:进程内缓存的使用与Cache注解详解
随着时间的积累,应用的使用用户不断增加,数据规模也越来越大,往往数据库查询操作会成为影响用户使用体验的瓶颈,此时使用缓存往往是解决这一问题非常好的手段之一.Spring 3开始提供了强大的基于注解的缓 ...
- spring2.0和spring2.5及以上版本的jar包区别 spring jar 包详解
spring jar 包详解 spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了 spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环 ...
- 《深入理解 Spring Cloud 与微服务构建》第十六章 Spring Boot Security 详解
<深入理解 Spring Cloud 与微服务构建>第十六章 Spring Boot Security 详解 文章目录 <深入理解 Spring Cloud 与微服务构建>第十 ...
- Spring和Spring Mvc整合详解
Spring和Spring Mvc整合详解 官方主页 Spring Spring Mvc SpringMvc 5,可以参考这一篇<Spring和Spring Mvc 5整合详解> 概述 S ...
- Spring循环依赖详解
Spring循环依赖详解 什么是循环依赖 spring是如何解决循环依赖 循环源码分析 getSingletion方法 getSingleton spring开启代理对象的地方 循环依赖的限制条件 什 ...
- Spring JdbcTemplate方法详解
2019独角兽企业重金招聘Python工程师标准>>> Spring JdbcTemplate方法详解 标签: springhsqldbjava存储数据库相关sql 2012-07- ...
- Spring Boot 配置文件详解
2019独角兽企业重金招聘Python工程师标准>>> 第二篇 : Spring Boot配置文件详解 文章首发于微信公众号<程序员果果> 地址:https://mp.w ...
最新文章
- java框架三层架构是_MVC框架模式和Javaweb经典三层架构
- 华为如何拍火烧云_华为手机拍照功能介绍-设置通用功能
- KTV歌曲推荐-深入浅出协同过滤
- Could not retrieve transaction isolation level from server
- thymeleaf引用html_SpringBoot+Thymeleaf实现html文件引入(类似include功能)_html/css_WEB-ITnose...
- 没有mysql支持时的替代方案
- java 生成素数_java – 素数生成器逻辑
- FFmpeg源代码简单分析:avformat_close_input()
- resin 配置 java_home_resin的安装与配置 - chencheng-linux的个人空间 - OSCHINA - 中文开源技术交流社区...
- C++并发与多线程(三)单例设计模式与共享数据分析、call_once、condition_variable使用
- 2008服务器系统c盘清理,WindowsServer2008清理C盘空间
- 本地文件搜索神器 --- Everything软件,快速搜索本地磁盘上的文件
- TWS耳机什么值得买?入耳式蓝牙耳机排行榜10强!
- laravel中artisan工具(命令)的使用详解
- 微信小程序评分功能(一)
- Win7自动登录,免密码
- 简单线性回归Ridge的应用及画图(二)
- Kafka3.0.0单机安装及简单使用
- jieba和wordcloud红楼梦人物出现次数生成词云
- sql 三个表联合查询(三表左联查询)