天天看點

Spring-cloud-alibaba使用nacos作為配置中心執行個體學習目标:背景及前置:使用Nacos的配置中心: 

學習目标:

學習使用nacos作為配置中心配置變量

背景及前置:

1、安裝nacos伺服器;

2、通常擷取配置的方法:

  • 在application.properties檔案中添加配置
    coupon.user.name=zhangsan
    coupon.user.age=24
               
  • 使用時通過@Value("${coupon.user.name}")擷取配置資訊
    @RestController
    @RequestMapping("coupon/coupon")
    public class CouponController {
        @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的配置中心:

1、導入依賴

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

2、在src/main/resourcs目錄下建立bootstrap.properties檔案,并添加下面代碼;

spring.application.name=gulimall-coupon     #名字為應用名稱,根據自己情況修改
spring.cloud.nacos.config.server-addr=127.0.0.1:8848 #nacos伺服器位址,如果安裝在本機一般無需修改
           

3、在nacos配置中心(上面所配的伺服器位址)配置管理->配置清單添加資料集,資料集名稱預設為:應用名.properties,并添加相關配置

Spring-cloud-alibaba使用nacos作為配置中心執行個體學習目标:背景及前置:使用Nacos的配置中心: 

4、對使用到配置的類名添加@RefreshScope注釋(可以動态擷取并重新整理配置),使用@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 Integer age;

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

5、一旦配置有所修改,可以直接在nacos配置中心進行修改并釋出,無需修改代碼并重新編譯打包;