@Cacheable方法的详解
时间: 2023-10-24 12:26:52 浏览: 53
@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注解之前,需要先配置好相应的缓存实现。
相关问题
@cacheable参数详解
@Cacheable 是 Spring 框架提供的一个注解,用于标记方法的返回值可以被缓存起来,以提高方法的执行效率。当一个带有 @Cacheable 注解的方法被调用时,Spring 会首先检查缓存中是否存在该方法的返回值,如果存在,则直接从缓存中返回结果,而不执行该方法;如果缓存中不存在,则执行该方法,并将方法的返回值存入缓存。
@Cacheable 注解可以放在方法级别和类级别上,如果放在类级别上,则表示该类的所有方法的返回值都可以被缓存。在方法级别上使用 @Cacheable 注解时,可以通过设置不同的缓存名字来对不同的方法进行缓存。
@Cacheable 注解还可以指定缓存的 key,通过 SpEL 表达式来动态生成缓存的 key。这样可以根据不同的参数生成不同的缓存 key,从而实现更加精细化的缓存控制。
此外,@Cacheable 注解还支持设置缓存条件,通过设置条件表达式,可以控制方法是否执行缓存。例如,可以根据某个参数的值来判断是否进行缓存。
总结来说,@Cacheable 注解是一个非常有用的注解,可以帮助我们简化缓存的使用,并提高方法的执行效率。
@Cacheable
@Cacheable是Spring框架中的一个注解,用于标记方法的返回值应该被缓存起来。它提供了两个参数来指定缓存的名称:value和cacheNames,二者选其一即可。例如,可以使用@Cacheable("menu")来标记一个方法,表示该方法的返回值应该被缓存在名为"menu"的缓存中。当调用该方法时,如果缓存中已经存在相应的缓存项,则直接从缓存中获取结果,而不会执行方法体中的代码。如果缓存中不存在相应的缓存项,则会执行方法体中的代码,并将结果存入缓存中供下次使用。这样可以提高方法的执行效率。\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [@Cacheable使用详解](https://blog.csdn.net/qq_44936392/article/details/121476927)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)