使用nacos config 作为dubbo springcloud 的配置中心

  • Post author:
  • Post category:其他



第一步:

启动Nacos Server,然后进入nacos管理页面

http://192.168.85.1:8848/nacos/index.html

(注意:这个地址改成你自己的)


第二步:


特别注意:比如你的auth-service服务需要用配置中心的配置,那么这个Data ID的名字就应该是auth-service.properties,不然是找不到对应配置的。


第三步:

在你需要使用配置的服务模块的pom中添加

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

然后,新建一个bootstrap.properties文件

spring:
  application:
    name: auth-service
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848



注意spring.applicaiton.name必须与data id 一致

之后,你可以在原有的application.yml(properties)中添加其他配置。


如何获得配置内容


1、在Controller中或Service中使用@Value注解获取配置


例子:

 @Value("${test1}")
 private String test;
 @GetMapping("verifyPermission")

public AuthVerifyResult verifyPermission(String token, String method, String path){
     System.out.println("test:"+test);
   return   authService.verifyPermission(token,method,path);
}


2、在启动类上获取配置


例子:

    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext =   SpringApplication.run(AuthServiceApplication.class, args);

        String test = applicationContext.getEnvironment().getProperty("test1");
        System.out.println(test);
    }


如何动态获取配置

方法1:若是用@Value注解,只需要在调用的类上加@RefreshScope注解

方法2:在启动类上

@SpringBootApplication
public class ProviderApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(ProviderApplication.class, args);
        while(true) {
            //当动态配置刷新时,会更新到 Enviroment中,因此这里每隔一秒中从Enviroment中获取配置
            String userName = applicationContext.getEnvironment().getProperty("user.name");
            String userAge = applicationContext.getEnvironment().getProperty("user.age");
            System.err.println("user name :" + userName + "; age: " + userAge);
            TimeUnit.SECONDS.sleep(1);
        }
    }
}



版权声明:本文为yueping0718原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。