1.SpringCache的原理及其使用场景
原理:
SpringCache 是一个框架,在缓存高热数据时我们会用到这种技术,因为SpringCache相当于一个抽象接口,在其底层可以切换各种Cache的实现,当缓存数据时,只需要注入SpringCache对应的注解,就能数显缓存的功能,大大的提高了缓存的效率,这就是SpringCache的使用原理.
应用场景
SpringCache中做常见的几种注解
注解 | 说明 |
---|---|
@EnableCaching | 开启缓存注解功能 |
@Cacheable | 在方法执行前spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,调用方法并将方法返回值放到缓存中 |
@CachePut | 将方法的返回值放到缓存中 |
@CacheEvict | 将一条或多条数据从缓存中删除 |
注意: SpringCache的注解一般加载业务层(service).
2. SpringCache的使用方法
1.首先需要在相关项目中的pom文件中导入相关的坐标
2.在启动类中加上注解,表示开启注解缓存的功能;
3.开启之后就可以在高热数据的代码上加注解了
1. 我希望在该用户信息保存到数据库的同时,也往缓存中缓存一份数据,我们可以在save方法上加上注解 @CachePut
key的写法如下:
#user.id : #user指的是方法形参的名称, id指的是user的id属性 , 也就是使用user的id属性作为key ;
#user.name: #user指的是方法形参的名称, name指的是user的name属性 ,也就是使用user的name属性作为key ;
#result.id : #result代表方法返回值,该表达式 代表以返回对象的id属性作为key ;
#result.name : #result代表方法返回值,该表达式 代表以返回对象的name属性作为key ;
2.当我们在删除数据库表的数据的时候,我们需要删除缓存中对应的数据,此时就可以使用@CacheEvict注解, 具体的使用方式如下:
3.@Cacheable 在方法执行前,spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,调用方法并将方法返回值放到缓存中