欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring-cloud-alibaba学习实例(2)--集成nacos-config

程序员文章站 2022-06-13 19:04:18
...

spring-cloud-alibaba学习实例(2)–集成nacos-config
这一小节主要讲解,使用nacos作为配置中心使用
新建一个子模块demo-nacos-config
spring-cloud-alibaba学习实例(2)--集成nacos-config
引入jar依赖

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

spring-cloud-starter-alibaba-nacos-config是新加入的依赖包
2 新建bootstrap.yml 配置文件

spring:
  application:
    name: nacos-config
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        # 如果是 .properties文件 不需要这个配置
        file-extension: yaml
server:
  port: 8082

3新建测试controller

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {

    @Value("${useLocalCache:null}")
    private String useLocalCache;

    @RequestMapping("/get")
    public String get() {
        return useLocalCache;
    }
}

@RefreshScope nacos配置的数据发生改变,这个注解就能跟着动态刷新
@Value("${useLocalCache:null}") 获取nacos中存储的数据,冒号后面的是默认值,当获取不到值的时候,就会赋予默认值
4新建启动类

@SpringBootApplication
public class ConfigApplication {
    public static void main(String[] args) {

        SpringApplication.run(ConfigApplication.class,args);
    }
}

5启动项目
spring-cloud-alibaba学习实例(2)--集成nacos-config
可以看到,项目开始监听nacos中dataid的值
那项目怎么知道dataid呢,这里有个默认的规则
nacos-config 在加载配置的时候,不仅仅加载了以 dataid 为 spring.application.name.{spring.application.name}.{file-extension:properties} 为前缀的基础配置,还加载了 dataid 为 spring.application.name{spring.application.name}-{profile}.${file-extension:properties} 的基础配置。
在日常开发中如果遇到多套环境下的不同配置,可以通过 Spring 提供的 ${spring.profiles.active} 这个配置项来配置。
比如我们的spring.application.name是nacos-config,profile为null,file-extension:properties为yaml 按照规则dataid就是nacos-config.yaml,由于没有设置grop 所以group为默认的DEFAULT_GROUP

spring-cloud-alibaba学习实例(2)--集成nacos-config

nacos-config 在加载配置的时候,不仅仅加载了以 dataid 为 spring.application.name.{spring.application.name}.{file-extension:properties} 为前缀的基础配置,还加载了 dataid 为 spring.application.name{spring.application.name}-{profile}.${file-extension:properties} 的基础配置。在日常开发中如果遇到多套环境下的不同配置,可以通过 Spring 提供的 ${spring.profiles.active} 这个配置项来配置。

6,先测试下,没有配置nacos信息时候
spring-cloud-alibaba学习实例(2)--集成nacos-config
spring-cloud-alibaba学习实例(2)--集成nacos-config
7打开naocos-server,控制台,配置dataid
spring-cloud-alibaba学习实例(2)--集成nacos-config
spring-cloud-alibaba学习实例(2)--集成nacos-config
spring-cloud-alibaba学习实例(2)--集成nacos-config
这样就可读到,nacos配置的信息了。
8测试nacos配置改变,实时刷新效果
spring-cloud-alibaba学习实例(2)--集成nacos-config
spring-cloud-alibaba学习实例(2)--集成nacos-config
9针对spring.profiles.active 这个属性 比如spring.profiles.active=develop
spring-cloud-alibaba学习实例(2)--集成nacos-config
那么对应nacos的dataid就变成了nacos-config-develop
spring-cloud-alibaba学习实例(2)--集成nacos-config
项目启动,就会监听dataid 为nacos-config-develop 的配置信息
nacos新建一个dataid 配置
spring-cloud-alibaba学习实例(2)--集成nacos-config

spring-cloud-alibaba学习实例(2)--集成nacos-config
github项目地址https://github.com/userliyazhou/spirng-cloud-alibaba-project-demo/tree/master/alibaba-project-parent/demo-nacos-config
spring-cloud-alibaba学习实例(2)--集成nacos-config