项目示例 - 4.配置中心 - 1.Nacos
关联知识:
- 分布式微服务 - 4.配置中心 - 2.Nacos
内容提要:
- 基本使用
基本使用
- 建Module:微服务起名为nacos-config
- 改pom:引入以下依赖
xml
<dependencies>
<!--Nacos的配置管理-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<!--新版Spring Cloud禁用了bootstrap,导入依赖启用bootstrap-->
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<!--Nacos的服务注册-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
- 写yml:在resources目录下创建application.yml和bootstrap.yml文件,并做以下配置
yml
# application.yml
server:
port: 8001
spring:
profiles:
active: test
cloud:
nacos:
discovery:
# nacos的地址
server-addr: localhost:8848
yml
# bootstrap.yml
spring:
application:
name: nacos-config
cloud:
nacos:
config:
# nacos地址
server-addr: localhost:8848
# 可配置namespace和group
group: DEFAULT_GROUP
# 配置文件的类型
file-extension: yml
- 主启动:在src下创建如下主启动类
java
package learn.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class NacosConfig {
public static void main(String[] args) {
SpringApplication.run(NacosConfig.class, args);
}
}
- 业务构建:创建如下controller类
java
package learn.demo.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/nacos/config/")
@RefreshScope // 配合@Value来刷新属性值
public class ConfigController {
@Value("${spring.application.name} ${server.port}")
private String serverInfo;
@Value("${config.info}")
private String configInfo;
@GetMapping("test")
public String test() {
return serverInfo+"\t"+configInfo;
}
}
- 配置文件:启动nacos,并在配置列表中创建配置,Data Id为nacos-config-test.yml、Group为DEFAULT_GROUP、配置格式为yaml,配置内容如下
yml
config:
info: nacos-config-test.yml version=1
- 测试:
- 启动本微服务,浏览器访问
localhost:8001/nacos/config/test
接口,能正常返回信息 - 在nacos中修改配置文件内容,不重启微服务的情况下再次访问接口,接口返回信息也同步更改
.
- 启动本微服务,浏览器访问