Spring Boot 默认使用的缓存方案是基于 Spring Framework 的缓存抽象。在 Spring Boot 中,你可以使用 @Cacheable
、@CachePut
和 @CacheEvict
注解来实现缓存功能。
-
@Cacheable
:该注解用于标记一个方法的结果可以被缓存,以提高后续对相同方法调用的性能。当方法被调用时,首先会检查缓存中是否存在该方法调用的结果,如果存在,则直接返回缓存中的结果,而不执行方法的实际逻辑。如果缓存中不存在该结果,则执行方法的逻辑,并将结果存储到缓存中。
-
@CachePut
:该注解用于标记一个方法的结果应该被缓存,无论缓存中是否已存在该方法调用的结果。使用 @CachePut
注解的方法会执行实际逻辑,并将结果存储到缓存中,即使缓存中已经存在相同的键值对。
-
@CacheEvict
:该注解用于标记一个方法执行后需要从缓存中移除某个或某些键值对。可以使用 @CacheEvict
注解指定需要从缓存中移除的键值对,以及移除方式(如是否清空整个缓存)。
这些注解需要与缓存管理器(如 Redis、Ehcache 等)一起使用。你可以在 Spring Boot 中配置相应的缓存管理器,以及定义缓存的名称、过期时间等属性。通过使用这些注解,你可以方便地实现方法级别的缓存功能,提高应用程序的性能和响应速度。
需要注意的是,这些注解默认使用方法参数和返回值作为缓存的键和值,如果需要自定义缓存的键和值,可以使用 key
和 value
参数进行指定。