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的缓存抽象体系,使得开发者可以方便地实现声明式缓存,提高应用的性能和响应速度。通过合理地配置和使用这些组件,你可以有效地管理缓存数据,确保数据的一致性和实时性。

相关推荐
JaguarJack5 分钟前
PHP 现代特性速查 写出更简洁安全的代码(中篇)
后端·php
echoyu.6 分钟前
java源代码、字节码、jvm、jit、aot的关系
java·开发语言·jvm·八股
彭于晏Yan1 小时前
IDEA如何进行远程Debug
java·ide
Victor3561 小时前
Redis(104)Redis的最大数据量是多少?
后端
Victor3561 小时前
Redis(105)Redis的数据类型支持哪些操作?
后端
木木子99994 小时前
业务架构、应用架构、数据架构、技术架构
java·开发语言·架构
qq_5470261796 小时前
Flowable 工作流引擎
java·服务器·前端
鼓掌MVP7 小时前
Java框架的发展历程体现了软件工程思想的持续进化
java·spring·架构
编程爱好者熊浪8 小时前
两次连接池泄露的BUG
java·数据库
lllsure8 小时前
【Spring Cloud】Spring Cloud Config
java·spring·spring cloud