首页 > 应用开发 > Java > Spring Cache 解析
一. 要学Spring Cache第一步学:SpEL 表达式
SpEL有三种用法,一种是在注解@Value中;一种是XML配置;最后一种是在代码块中使用Expression。
1 //@Value能修饰成员变量和方法形参
//#{}内就是表达式的内容
@Value("#{表达式}")
public String arg;
3 public static void main(String[] args) {
//创建ExpressionParser解析表达式
ExpressionParser parser = new SpelExpressionParser();
//表达式放置 大连无痛人流医院 http://www.bhbyby.net/
Expression exp = parser.parseExpression("表达式");
//执行表达式,默认容器是spring本身的容器:ApplicationContext
Object value = exp.getValue();}
spring cache 用第二类方式
二 .相关的注解 :
1. 主要注解:@Cacheable(value=”dicCollege”,key =CacheConstant.KEY_DIC_COLLEGE), {注意:就是redies存储的key格式为dicCollege::CacheConstant.KEY_DIC_COLLEGE )}
//spring boot代码为:
@Cacheable(value = “dicCollege”,key =CacheConstant.KEY_DIC_COLLEGE)
public ResultJson list(@RequestBody PageWeb pageWeb){
}
这个注释的意思是,当调用这个方法的时候,会从redies里一个名叫 dicCollege加key字段的缓存中查询。
如果没有,则执行实际的方法(即查询数据库),并将执行的结果存入缓存中,否则返回缓存中的对象。
这里的缓存中的 key 就是入参的参数对象的相对于字段。即使自己写入的相应字段。可以用sql表达式加自己需要的字符串连接
我的CacheConstant.KEY_DIC_COLLEGE等于 'dicCollege-'+#pageWeb.pageNum+'-'+#pageWeb.pageSize+'-'+#pageWeb.params.getCollegeName()
及存入redies的值为:
1 null 参数分别为pageWeb的三个内部数: ’#pageWeb.pageNum','#pageWeb.pageSize'',‘#pageWeb.params.getCollegeName()‘
再次调用时,如果没有调用增删改,就可以直接从第三方redies调用。
2. 主要注解:@CacheEvict(value ="dicCollege",allEntries = true)
@CacheEvict 注释来标记要清空缓存的方法,当这个方法被调用后,即会清空缓存。
一般用于增删改 ,形式一般为:@CacheEvict(value = “dicCollege”,allEntries = true)
3 @CachePut 注释,这个注释可以确保方法被执行,同时方法的返回值也被记录到缓存中,实现缓存与数据库的同步更新(不常用)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70005147/viewspace-2786629/ ,如需转载,请注明出处,否则将追究法律责任。