spring缓存通用配置

@Cacheable

功能:这个注解用于声明一个方法的结果是可缓存的。当方法首次被调用时,其结果会被存储在缓存中。之后,对于相同的输入参数,该方法将不会再次执行,而是直接从缓存中返回结果。

属性

  • value:缓存的名称,可以指定多个缓存。
  • key:缓存的key,可以通过SpEL表达式动态生成。
  • condition:满足条件时才会缓存结果。
  • unless:除非满足条件,否则不缓存结果。

@CacheEvict

功能:这个注解用于从缓存中移除一个或多个条目。它通常用于在数据发生变更时,确保缓存中的数据是最新的。

属性

  • value:缓存的名称。
  • key:要移除的缓存条目的key。
  • allEntries:如果为true,则移除缓存中的所有条目。
  • beforeInvocation:如果为true,则在方法执行前移除缓存条目。

@CachePut

功能:这个注解用于更新缓存中的数据。无论方法是否被调用过,它都会执行方法并将结果保存到缓存中。

属性:与@Cacheable类似,但主要用于更新操作。

CacheAnnotationParser

功能:这是一个解析器,用于解析类和方法上的缓存注解(如@Cacheable, @CacheEvict, @CachePut等)。它会读取注解的属性,并根据这些属性生成相应的缓存操作。

CacheConfig

功能:这个注解用于在类级别上提供共享的缓存配置。通过它,你可以为类中的所有缓存操作指定默认的缓存名称、key生成策略等,避免在每个方法上都重复配置。

CachingConfigurer

功能:这是一个接口,允许用户自定义缓存的配置。实现这个接口的bean会被Spring识别,并用于配置缓存管理器、缓存解析器等组件。通过它,你可以提供自己的缓存配置逻辑。

@EnableCaching

功能:这个注解用于启用Spring的缓存抽象。当你在配置类上添加这个注解时,Spring会自动检测并应用缓存相关的注解,如@Cacheable, @CacheEvict等。它还会触发缓存的初始化过程,包括创建缓存管理器、缓存解析器等。

CachingConfigurationSelector

功能:这个类用于根据应用的上下文选择正确的缓存配置。它会检查应用的依赖和配置,然后选择合适的缓存管理器实现。这使得开发者可以灵活地选择不同的缓存解决方案,如EhCache、Redis等。

SpringCacheAnnotationParser

功能:这可能是Spring框架内部用于解析缓存注解的特定实现或组件。它的功能与CacheAnnotationParser类似,但可能针对特定的Spring版本或上下文进行了优化或扩展。

这些组件共同构成了Spring的缓存抽象体系,使得开发者可以方便地实现声明式缓存,提高应用的性能和响应速度。通过合理地配置和使用这些组件,你可以有效地管理缓存数据,确保数据的一致性和实时性。

相关推荐
blammmp19 分钟前
Java:数据结构-枚举
java·开发语言·数据结构
暗黑起源喵38 分钟前
设计模式-工厂设计模式
java·开发语言·设计模式
WaaTong42 分钟前
Java反射
java·开发语言·反射
齐 飞1 小时前
MongoDB笔记01-概念与安装
前端·数据库·笔记·后端·mongodb
九圣残炎1 小时前
【从零开始的LeetCode-算法】1456. 定长子串中元音的最大数目
java·算法·leetcode
wclass-zhengge1 小时前
Netty篇(入门编程)
java·linux·服务器
LunarCod1 小时前
WorkFlow源码剖析——Communicator之TCPServer(中)
后端·workflow·c/c++·网络框架·源码剖析·高性能高并发
成富2 小时前
文本转SQL(Text-to-SQL),场景介绍与 Spring AI 实现
数据库·人工智能·sql·spring·oracle
Re.不晚2 小时前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
雷神乐乐2 小时前
Maven学习——创建Maven的Java和Web工程,并运行在Tomcat上
java·maven