springcloud nacos

1.POM

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

2. yml

Why 需要两个配置文件?

Nacos同springcloud-config 一样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置以后,才能保证项目的正常运行

springboot中配置文件的加载存在优先级别顺序  bootstrap.yml 优先级别高于 application.yml

application.yml

server:
  port: 8887

spring:
  profiles:
    active: dev

bootstrap.yml

spring:
  application:
    name: cloud-consumer-service
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #服务注册中心地址
      config:
        server-addr: localhost:8848 #配置中心地址
        file-extension: yaml #指定yaml格式的配置
        group: DEV_GROUP
        namespace: 23567cb2-1be6-4fa5-8dd4-8f0d817474c5

# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
# nacos-config-client-dev.yaml

# nacos-config-client-test.yaml   ----> config.info

  缺少 bootstrap.yml 报错如下

NacosConfigProperties      : create config service error!properties=NacosConfigProperties{serverAddr='null', encode='null', group='DEFAULT_GROUP', prefix='null', fileExtension='properties', timeout=3000, endpoint='null', namespace='null', accessKey='null', secretKey='null', contextPath='null', clusterName='null', name='null', sharedDataids='null', refreshableDataids='null', extConfig=null},e=,

 3.启动类   

加注解 @EnableDiscoveryClient  激活nacos
@SpringBootApplication
@EnableDiscoveryClient
public class OrderMain {
    public static void main(String[] args) {
        SpringApplication.run(OrderMain.class,args);
    }
}

   4.业务类

@RefreshScope  支持动态刷新

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

    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/config/info")
    public String getConfigInfo() {
        return configInfo;
    }

}

  

 

posted @ 2022-04-21 16:48  王叫兽  阅读(183)  评论(0)    收藏  举报