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

相关推荐
wjs20243 分钟前
基于Java的Nacos云原生动态服务发现、配置和服务管理平台设计源码
java·nacos·服务发现·配置管理·云原生平台
chyun201136 分钟前
代码精简之路-责任链模式
java·设计模式
用户990450177800943 分钟前
真需求永远是第一位
后端
孟林洁1 小时前
Jenkins流水线 & Allure & JUnit5 自动化测试
java·运维·jenkins
喝汽水的猫^1 小时前
Java中TimedCache缓存对象的详细使用
java·缓存
Re.不晚1 小时前
Java图书管理系统(简易&保姆级)
java·linux·服务器·开发语言·学习·算法·intellij-idea
笨蛋不要掉眼泪1 小时前
泛型数组与hashmap
java·开发语言·算法
Python私教1 小时前
Docker化部署Flask:轻量级Web应用的快速部署方案
后端
创码小奇客1 小时前
《Lock 锁与 AQS 的 “家族秘史”:继承那些事儿,代码来揭秘》
java·后端·架构