1.美图
2.概述
我们知道绝⼤多数的⽹站/系统,最先遇到的一个性能瓶颈就是数据库,使⽤用缓存做数据库的前置缓存,可以非常有效地降低数据库的压力,从而提升整个系统的响应效率和并发量。
以往使⽤缓存时,通常创建好缓存⼯具类,使⽤时将对应的⼯具类注⼊,操作⼯具类在前端处理理缓存的逻辑。其实这种⽅式是低效的,⼤部分使用缓存的场景是基于数据库的缓存,这类缓存场景的逻辑往是:如果缓存中存在数据,就从缓存中读取,如果缓存中不存在数据或者数据失效,就再从数据库中读取。
为了实现这样的逻辑,往需要在业务代码中写很多的逻辑判断,那么有没有通⽤的代码来实现这样的逻辑呢?其实有,按照这个逻辑我们可以写一个⼯具类来实现,每次需要这样判断逻辑时调⽤工具类中的方法即可,还有没有更优雅的使⽤⽅式呢?答案是肯定的,如果我们把这种固定的逻辑使用 Java 注解来实现,每次需要使⽤时只需要在对应的⽅法或者类上写上注解即可。
Spring 也看到了这样的使⽤场景,于是有了注释驱动的 Spring Cach