使用SpringCloud Alibaba - Nacos 作为配置中心

Nacos Config 案例 文档:spring-cloud-alibaba/readme-zh.md at 2021.x · alibaba/spring-cloud-alibaba · GitHub

我使用的Spring Boot 版本为2.6.4,高于2.4.0 版本所以需要使用import 的方式导入配置。

使用之前的配置不生效,踩坑后查了很多资料,最后发现官方文档上已经写明了。

1、首先,修改 pom.xml 文件,引入 Nacos Config Starter

<dependency>
     <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
 </dependency>

2、在配置文件中配置配置中心的相关配置

application-dev.yml

spring:
  application:
    name: yaomall-coupon
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yml #配置的格式 yml
        #设置命名空间 这个是新建的dev命名空间(不写就是public)
#        namespace: 5ff7df55-0fb2-4911-b4ca-dedcdf249d10
        #读取dev(UUID)命名空间下的group分组
        # group: *_GROUP_01
        group: DEV_GROUP
  config:
    import:
      # 导入nacos配置中心的配置文件
    - optional:nacos:yaomall-coupon.yml

3、在nacos 中添加配置文件

添加一个名称为yaomall-coupon.yml   添加到DEV_GROUP组中

添加好后点击发布

4、动态获取配置 — 需要添加一个注解才能生效

需要加@RefreshScopp,然后配合 @Value 一起使用。

@RefreshScope
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
    @Autowired
    private CouponService couponService;

    @Value("${coupon.user.name}")
    private String name;

    @Value("${coupon.user.age}")
    private String age;

    @RequestMapping("/test")
    public R test(){
        return R.ok().put("name", name).put("age", age);
    }
}

注:如果配置中心和当前应用的配置文件中都配置了相同的配置项,优先使用配置中心的配置。

5、演示结果:

A  当前应用的配置文件和配置中心配置文件中有相同配置项。

B  编辑配置文件,编辑完成后点击发布。

在确认发布过程中,有一个对比的过程,这点就很人性化。

C 在确认发布后,应用会立马会有配置刷新的日志打印。 

D  请求测试类,获取更改的配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值