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

相关推荐
【D'accumulation】20 分钟前
典型的MVC设计模式:使用JSP和JavaBean相结合的方式来动态生成网页内容典型的MVC设计模式
java·设计模式·mvc
wn53130 分钟前
【Go - 类型断言】
服务器·开发语言·后端·golang
试行35 分钟前
Android实现自定义下拉列表绑定数据
android·java
茜茜西西CeCe41 分钟前
移动技术开发:简单计算器界面
java·gitee·安卓·android-studio·移动技术开发·原生安卓开发
救救孩子把1 小时前
Java基础之IO流
java·开发语言
小菜yh1 小时前
关于Redis
java·数据库·spring boot·redis·spring·缓存
宇卿.1 小时前
Java键盘输入语句
java·开发语言
浅念同学1 小时前
算法.图论-并查集上
java·算法·图论
希冀1231 小时前
【操作系统】1.2操作系统的发展与分类
后端
立志成为coding大牛的菜鸟.1 小时前
力扣1143-最长公共子序列(Java详细题解)
java·算法·leetcode