写在前面的话

更多Spring与微服务相关的教程请戳这里 ​​火力全开系列 Spring与微服务教程合集 持续更新​

 

1、入门示例

1.1、nacos服务端

首先启动nacos,然后在nacos的配置列表页面,新增三个配置,分别是:

  • nacos-client.yaml
  • nacos-client-test.yaml
  • nacos-client-prod.yaml

Spring Cloud Alibaba教程 第二弹 Nacos配置管理_Spring Cloud教程

Spring Cloud Alibaba教程 第二弹 Nacos配置管理_Spring Cloud_02

Spring Cloud Alibaba教程 第二弹 Nacos配置管理_Spring Cloud_03

 

 

1.2、nacos客户端

1.2.1、pom.xml

    <properties>
<spring-cloud-alibaba.version>2.0.2.RELEASE</spring-cloud-alibaba.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

</dependencies>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

 

1.2.2、bootstrap.yml

注意:

  • nacos客户端会根据spring.application.name去找对应Data Id的配置,比如下面的配置,就会识别到nacos-client.yaml配置文件
  • 并且,nacos客户端还会根据spring.profiles.active去找激活的配置,比如下面的配置,就会识别到nacos-client-test.yaml配置文件
spring:
profiles:
active: test
application:
name: nacos-client
cloud:
nacos:
config:
file-extension: yaml
server-addr: 127.0.0.1:8848

 

1.2.3、controller

@RestController
public class ConfigController {

@Value("${user.name}")
private String username;

@Value("${user.password}")
private String password;

@Value("${user.school}")
private String school;

@Value("${user.age}")
private String age;

@Value("${user.env}")
private String env;

@RequestMapping("/getConfig/{key}")
public String getConfig(@PathVariable(value = "key") String key){
if("username".equals(key)){
return username;
}else if("password".equals(key)){
return password;
}else if("school".equals(key)){
return school;
}else if("age".equals(key)){
return age;
}else if("env".equals(key)){
return env;
}else{
return "the value is empty by this key!";
}

}

}