浅谈Java注解之Cacheable
一、Cacheable注解的介绍
@Cacheable
是Spring框架提供的缓存注解,用于方法级别,表示该方法的返回结果是可以被缓存的。当方法被调用时,Spring会检查缓存中是否已有该方法参数对应的结果。如果有,直接从缓存中返回结果;如果没有,执行方法并将返回结果放入缓存中,以便后续相同参数的调用可以直接从缓存中获取结果,从而提高性能。
二、Cacheable注解的特点
1、减少重复计算:通过缓存方法的返回结果,避免重复的计算或数据库查询,提高应用性能。
2、条件缓存:可以通过条件表达式决定是否缓存结果。
3、自定义缓存键:可以自定义生成缓存键的方式,灵活控制缓存数据的存储。
4、支持多个缓存:可以指定方法的结果存储在多个缓存中。
5、异步缓存:支持异步模式,可以在后台线程中进行缓存操作,提高性能。
三、Cacheable注解的使用方法
开启缓存支持:在Spring Boot的主启动类上添加@EnableCaching
注解,开启基于注解的缓存支持。
@SpringBootApplication
@EnableCaching
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
使用@Cacheable
注解:在需要缓存的方法上添加@Cacheable
注解,并配置相关属性。
@Cacheable(cacheNames = "myCache", key = "#id")
public Object getData(String id) {
// 获取业务数据
return data;
}
四、Cacheable
注解的属性
1、cacheNames/value:指定缓存组件的名字,可以指定多个缓存。
2、key:缓存数据时使用的key,可以使用SpEL表达式编写。
3、keyGenerator:key的生成器,可以自定义key的生成逻辑。
4、cacheManager:指定缓存管理器,用于获取缓存。
5、condition:指定条件表达式,只有满足条件时才进行缓存。
6、unless:否定缓存,当指定条件为true时,不进行缓存。
7、sync:是否使用异步模式进行缓存操作。