Springboot集成nacos配置中心及动态配置

目录

    • 简述
    • 下载 nacos
    • Springboot添加nacos依赖
    • application.yml 中配置nacos
    • 启动类配置
    • 通过MVC测试数据(Controller)
      • postman测试
      • 更改nacos配置
      • postman测试【不要重启Springboot项目】
    • 动态配置

简述

分布式中nacos的用法请查看往期文章 搭建SpringCloud-Alibaba框架。

分布式与单体项目引入的依赖不同,配置也有所出入,当然这篇文章不包含服务注册相关内容,只引导需要集成nacos配置中心及动态配置的小伙伴儿。

下载 nacos

还未下载nacos的小伙伴 请点击下面网址进行下载

nacos下载点我

目前最新版本是1.4.1,打开上面的连接,拉倒最下面就可找到 压缩包,安装nacos这里不做阐述。进入正题

Springboot添加nacos依赖

注意:版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本。

        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>${your.version}</version>
        </dependency>

application.yml 中配置nacos

这里就跟 spring-cloud-alibaba中的nacos有所区别了。
区别①:分布式中你的配置需要放在 bootstrap中,而单体项目放在application中即可
区别②:分布式中nacos的dateId、type、groupId等都可以一次性配在bootstrap配置文件中,而单体项目以上提及的这几点需要通过在启动类添加@NacosPropertySource注解进行配置。具体操作如下

nacos:
  config:
    server-addr: 127.0.0.1:8848
    namespace: 2e72f4cf-ca30-4a94-9659-d9e42369326e

注:如果不配置 namespace则默认从public中拉取配置

启动类配置

@SpringBootApplication
@NacosPropertySource(dataId = "examples", type = ConfigType.YAML,groupId = "test",autoRefreshed = true)
public class CheckApplication {

    public static void main(String[] args) {
        SpringApplication.run(CheckApplication.class, args);
    }
}

对应的nacos页面

Springboot集成nacos配置中心及动态配置_第1张图片

Springboot集成nacos配置中心及动态配置_第2张图片

通过MVC测试数据(Controller)

@RestController
public class TestController {

    @NacosValue(value = "${test.properties-version}", autoRefreshed = true)
    private String propertiesVersion;

    @GetMapping("/test/config")
    public String propertiesVersion() {
        return propertiesVersion;
    }
}

通过 Nacos 的 @NacosValue 注解设置属性值,这里的@NacosValue 和 Spring中的@value同等用法

postman测试

Springboot集成nacos配置中心及动态配置_第3张图片

更改nacos配置

把配置从 v1.0 改成 v1.1
Springboot集成nacos配置中心及动态配置_第4张图片

postman测试【不要重启Springboot项目】

Springboot集成nacos配置中心及动态配置_第5张图片

动态配置

@NacosValue注解中有一个属性可以控制是否动态更新配置 autoRefreshed = true

你可能感兴趣的:(java,nacos,Springboot)