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

spring-cloud-alibaba学习实例(2)–集成nacos-config 这一小节主要讲解,使用nacos作为配置中心使用 新建一个子模块demo-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启动项目 可以看到,项目开始监听nacos中dataid的值 那项目怎么知道dataid呢,这里有个默认的规则 nacos-config 在加载配置的时候,不仅仅加载了以 dataid 为 s p r i n g . a p p l i c a t i o n . n a m e . {spring.application.name}. spring.application.name.{file-extension:properties} 为前缀的基础配置,还加载了 dataid 为 s p r i n g . a p p l i c a t i o n . n a m e − {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

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

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

github项目地址https://github.com/userliyazhou/spirng-cloud-alibaba-project-demo/tree/master/alibaba-project-parent/demo-nacos-config

经验分享 程序员 微信小程序 职场和发展