千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Spring Boot缓存注解详解

Spring Boot缓存注解详解

来源:千锋教育
发布人:xqq
时间: 2023-11-25 13:15:24 1700889324

一、Spring Boot缓存注解及其解释

Spring Boot缓存注解是Spring Boot提供的缓存框架,在数据库操作、方法调用等场景下可以提高系统的性能和效率。常用的Spring Boot缓存注解如下:

@Cacheable:在方法上加上该注解后,下次调用时如果缓存存在,则直接从缓存中获取,否则会执行该方法并将结果存入缓存。 @CachePut:在方法上加上该注解后,每次都会执行该方法并将结果存入缓存中。 @CacheEvict:在方法上加上该注解后,会移除指定的缓存。

使用这些注解,可以轻松方式缓存的使用,提高系统性能。

二、Spring Boot三级缓存

在Spring Boot中,缓存可以分为三级:

ConcurrentMapCacheManager本地缓存:这是默认的本地缓存管理器,采用ConcurrentMap实现,不需要引入其他依赖。 CaffeineCacheManager本地缓存:需要引入Caffeine缓存依赖,可以提供更好的缓存性能。 RedisCacheManager分布式缓存:需要引入Redis缓存依赖,可以提供分布式缓存功能。

三、Spring Boot缓存注解默认的key

在使用Spring Boot缓存注解时,如果我们没有指定key,则默认使用方法的参数作为key。但是很多时候我们需要使用其他参数作为key,这时候可以通过指定@Cacheable和@CachePut的key参数来解决。同时,Spring Boot也提供了其他参数来控制key生成规则,如:

key:Cache的key,可以使用Spring EL表达式来表达方法参数中的值,例如:@Cacheable(value="users", key="#id") 表示缓存的key为users:id。 condition:指定条件表达式,满足条件的方法才会执行缓存操作。 unless:否定的条件表达式,只有不满足条件的方法才会执行缓存操作。

四、Spring Boot缓存注解开启Redis

Spring Boot提供了Redis作为分布式系统的缓存方案。在使用Redis作为缓存时,我们需要在项目的配置文件中添加以下Redis配置。其中host和port根据需要进行配置:


spring:
  redis:
    host: localhost
    port: 6379

同时,我们还需要在启动类上添加@EnableCaching注解开启缓存功能。


@SpringBootApplication
@EnableCaching
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

五、Spring Boot缓存注解配置Redis

Spring Boot提供了一些配置来控制缓存和Redis的使用。下面是一些常用的配置:

spring.cache.type:缓存类型,默认为simple,可选的类型包括:simple、redis、caffeine。 spring.cache.cache-names:缓存名称,可以配置多个。 spring.cache.redis.time-to-live:缓存过期时间,单位为秒,默认为未设置过期时间。 spring.cache.redis.use-key-prefix:是否使用前缀,默认为true。

六、Spring缓存注解

Spring Boot缓存注解是基于Spring缓存体系实现的,以下是常用的Spring缓存注解:

@Cacheable:在方法上加上该注解后,下次调用时如果缓存存在,则直接从缓存中获取,否则会执行该方法并将结果存入缓存。 @CachePut:在方法上加上该注解后,每次都会执行该方法并将结果存入缓存中。 @CacheEvict:在方法上加上该注解后,会移除指定的缓存。 @Caching:将多个注解组合在一起,可以同时使用多个注解。 @CacheConfig:用于配置缓存公共参数,如缓存管理器、缓存名称。

七、Spring Boot核心注解

在使用Spring Boot时,有一些核心注解可以帮助我们快速构建应用程序,如下所示:

@SpringBootApplication:标注一个主程序类,用于开启Spring Boot应用程序; @RestController:标注一个控制器类,处理HTTP请求和响应; @GetMapping、@PostMapping:标注一个方法,用于处理HTTP请求的GET、POST方法; @Autowired:自动注入一个bean实例; @Value:从配置文件中获取值,支持简单的Spring EL表达式。

八、Spring Boot注释

Spring Boot提供了一些注释,可以帮助我们更好地编写应用程序:

@Component:标注一个组件类(如服务、DAO等); @Configuration:标注一个类,用于声明Spring上下文中的bean; @Bean:标注一个方法,用于声明Spring上下文中的bean; @Qualifier:在多个相同类型的bean中指定要注入的bean实例; @Profile:用于指定不同环境下的不同bean; @Conditional:根据条件选择是否注册bean。

九、Spring Boot注解及解释

除了缓存注解和Spring核心注解外,Spring Boot还提供了其他很多有用的注解,例如:

@SpringBootTest:用于测试Spring Boot应用程序; @EnableAutoConfiguration:用于自动配置Spring Boot应用程序; @EnableScheduling:用于启用任务调度; @EnableAsync:用于启用异步处理; @ControllerAdvice:用于全局捕获异常和处理返回结果; @ExceptionHandler:用于处理异常; @RequestParam:获取HTTP请求参数的值; @PathVariable:获取URI中的参数值; @RequestBody:用于绑定HTTP请求体到方法参数上; @ResponseBody:用于将返回值转化为JSON并输出到HTTP响应体中。

结语

本文主要围绕Spring Boot缓存注解展开了详细的阐述,从注解的含义、三级缓存、缓存默认的key、开启Redis、配置Redis、Spring缓存注解、Spring Boot核心注解、Spring Boot注释、Spring Boot注解及解释等多个方面进行了分析。通过学习本文,读者可以深入了解Spring Boot的缓存注解,并能够在实践中灵活应用。最后,希望本文能够对广大读者有所帮助。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT