SpringAlibabaCloud组件中nacos不仅是注册中心也是配置中心,方便配置统一管理。
命名空间概念
- 命名空间用来隔离不同环境下的配置文件,在Nacos中配置了命名空间后,需要指定命名空间后才能拉取到该命名空间下的配置文件。
- 我在本地开发,新建开发环境的命名空间

创建配置文件
- 在nacos中dev命名空间创建配置文件

- 配置一个字符串用于测试
user:
learn: "用户服务配置"

创建一个为user-server-biz-dev.yaml的配置,使用的是YAML格式。
Data ID : 配置的文件的名字,在拉取配置文件的时候需要指定Data ID。
Group : 分组,默认是 DEFAULT_GROUP , 可以针对不同的项目指定不同的配置组。
项目导入依赖以及配置
<build>
<!-- 如果不设置resource 会导致application.yaml中的@@找不到pom文件中的配置-->
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<dependencies>
<!-- 配置中心依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--web 依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--nacos依赖-->
<dependency>
<groupId>com.alibaba.cloud </groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
<profiles>
<profile>
<id>dev</id>
<properties>
<!-- 环境标识,需要与配置文件的名称相对应 -->
<profiles.active>dev</profiles.active>
</properties>
<activation>
<!-- 默认环境 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
</properties>
</profile>
</profiles>
- 配置文件加入配置
server:
port: 8001
spring:
profiles:
active: @profiles.active@ #启用的环境
application:
name: @artifactId@
cloud:
nacos:
discovery:
server-addr: ${NACOS_HOST:ruyi-register}:${NACOS_PORT:8848} #nacos的地址
config:
server-addr: ${spring.cloud.nacos.discovery.server-addr} #配置中心的地址
file-extension: yaml #文件格式
prefix: @artifactId@-@profiles.active@ #前缀 user-server-biz-dev
group: DEFAULT_GROUP #默认分组
namespace: c6835035-f1d6-48f6-a802-96e72114cbf9 #使用指定命名空间的配置文件
写个方法测试
@RestController
@RequestMapping("/user")
public class UserController {
@Value("${user.learn}")
private String param;
/**
* 测试读取配置中心字符
*/
@GetMapping("/learn")
public void loadFile() {
System.out.println("配置中心读取的字符串:" + param);
}
}
读取成功
- 访问http://localhost:8001/user/learn读取配置中心的字符串。

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