谷粒商城-2020-学习笔记-23-Spring-Cloud-Alibaba-Nacos配置中心的引入

传统的获取配置文件中的值的方法:applicaton.properties中配置一些值,然后在Controller中用@value注解获取,如下

coupon.user.name=zhangsan
coupon.user.age=20
	@Value("${coupon.user.name}")
    private String name;
    @Value("${coupon.user.age}")
    private Integer age;
    
	@RequestMapping("/test")
    public R test(){
        return R.ok().put("name", name).put("age", age);
    }

传统方式的缺点:产品部署上线后每次更改配置需要重新修改源代码的配置,再次部署上线,十分麻烦
解决办法:引入Nacos配置中心,将原来applicaton.properties中的配置的值搬到配置中心,部署上线后想要更改直接到配置中心中更改即可

引入Nacos配置中心:


第一步:Common工程中的pom导入配置中心的依赖

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

第二步:在每个微服务的 /src/main/resources/中创建bootstrap.properties 配置文件,并配置 Nacos Config 元数据(微服务的名字和Nacos配置中心的地址)

 spring.application.name=gulimall-coupon
 spring.cloud.nacos.config.server-addr=127.0.0.1:8848

第三步:配置中心中新建配置,Data ID为微服务名称.properties ,配置数据直接复制过来,发布
在这里插入图片描述

第四步:引用了配置中心配置的数据的Controller层添加注解@RefreshScope,并继续用@value获取值
原来的applicaton.properties中的配置可以删除了(如果配置中心与applicaton.properties配置文件中都配置了相同的项,优先获取配置中心的值)

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

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

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

第五步,启动更改配置中心的配置,测试成功


版权声明:本文为weixin_43686221原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。