更多Spring与微服务相关的教程请戳这里 Spring与微服务教程合集
1、入门示例
1.1、nacos服务端
首先启动nacos,然后在nacos的配置列表页面,新增三个配置,分别是:
- nacos-client.yaml
- nacos-client-test.yaml
- nacos-client-prod.yaml
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!";
}
}
}