@Cacheable方法的详解
时间: 2023-10-24 20:26:52 浏览: 95
java之SpringCache之@Cacheable注解的说明使用
@Cacheable是Spring框架中的注解,用于配置方法的结果进行缓存。当一个方法被@Cacheable注解修饰时,在调用该方法时,先检查缓存中是否存在该方法的结果。如果存在,则直接从缓存中获取结果并返回,而不再执行该方法。如果不存在,则执行该方法,并将方法的返回值存入缓存中。
@Cacheable注解有几个常用的属性,包括:
1. value:指定缓存的名称。多个缓存名称可以用逗号隔开,表示该方法的结果将会被存储在多个缓存中。
2. key:指定缓存的key。可以使用SpEL表达式来动态生成缓存的key。默认情况下,使用方法的参数作为缓存的key。
3. condition:指定条件表达式,只有满足条件时才会对方法结果进行缓存。例如,condition = "#result != null" 表示只有当方法的返回结果不为null时才进行缓存。
4. unless:指定条件表达式,只有不满足条件时才会对方法结果进行缓存。例如,unless = "#result == null" 表示只有当方法的返回结果为null时才不进行缓存。
@Cacheable注解可以应用于类和方法上。当应用于类上时,表示该类下所有的方法的结果都会被缓存;当应用于方法上时,表示该方法的结果会被缓存。
需要注意的是,@Cacheable注解依赖于具体的缓存实现,如Ehcache、Redis等。在使用@Cacheable注解之前,需要先配置好相应的缓存实现。
阅读全文