Spring Cloud--自动启用@RefreshScope功能
2026/7/30 17:13:50 网站建设 项目流程

原文网址:Spring Cloud--自动启用@RefreshScope功能-CSDN博客

简介

本文手写组件,自动启用@RefreshScope功能。

众所周知,使用Nacos配置中心时,将@RefreshScope放到Bean的类定义上就能实现自动刷新。也就是:@Value注解的值可以在Nacos修改配置后自动更新,不用重启服务。

不加@RefreshScope不影响使用,只是无法在不重启的情况下更新@Value的值,这就会导致很多人都忘记加这个注解了。

但是,每个有@Value的类都要加这个注解?是不是太累了?

低端方案:开发组长定时检查一下代码,看谁的没有加这个注解。(这实在是太low了)

高端方案:项目启动时,自动将带有@Value注解的类添加@RefreshScope的功能。

本文采用高端方案,一劳永逸!所有带有@Value注解的地方都会自动刷新无需添加@RefreshScope

结果展示

Controller代码

package com.knife.example.business.product.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @Api(tags = "商品") @RestController @RequestMapping("product") public class ProductController { @Value("${key1:aa}") private String key1; @ApiOperation("测试") @GetMapping("detail") public String detail() { return key1; } }

测试

访问:http://localhost:8080/doc.html

修改Nacos,将key1改为bb,不重启应用。

再次请求:(可见,已经自动更新啦)

代码

上边是文章的部分内容,为便于维护,全文已转移到此地址:自动启用@RefreshScope功能 - 自学精灵

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询