1. 对应版本
组件 | 版本 |
---|---|
spring-boot | 2.4.2 |
spring-cloud-starter-alibaba-nacos-config | 2021.1 |
2. 名词解释
Namespace:代表不同环境,如开发、测试、生产环境。
Group:代表某项目,如XX医疗项目、XX电商项目。
DataId:每个项目下往往有若干个工程(微服务),每个配置集(DataId)是一个工程(微服务)的主配置文件。
在这里插入图片描述
2.2 Nacos 数据模型
在这里插入图片描述3. nacos 页面配置中心
3.1 命名空间
在这里插入图片描述3.2 配置列表
在这里插入图片描述3.3 配置文件
在这里插入图片描述wudl:
swagger:
enabled: true
title: 在线接口文档
base-package: com.wudl.schedule.controller
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
tempurl: http://192.168.1.180:8848/nac
4. 代码配置
4.1 pom 文件
<!-- SpringCloud Alibaba Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--Nacos config依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
4.2 bootstrap.yml 配置内容
spring:
application:
# 会自动根据服务名拉取dataid对应的配置文件。 如果dataid跟服务名不一致 就需要手动指定dataid
# 跟服务名相同的dataid的配置文件,称之为默认的配置文件
# 除了默认的配置文件 ,其他配置文件必须写上后缀
name: platform-api-schedule
cloud:
nacos:
server-addr: 192.168.1.180:8848
username: nacos
password: nacos
# 解决控制台循环打印ClientWorker日志
#config:
# namespace: public
# Nacos客户端 默认是Properties的文件扩展名 (只针对默认配置文件和profile)
# 一旦修改成了非Properties格式,则必须通过file-extension进行设置
config:
file-extension: yaml
#refresh-enabled: false nacos客户端将无法感知配置的变化
namespace: b8da4466-b9eb-48ec-80aa-0425fb2b1355
group: bigdata
refresh:
enabled: true
profiles:
active: dev
# 配置文件的优先级(优先级大的会覆盖优先级小的, 并且会形成互补)
# profile> 默认配置文件>extension-configs(下标越大优先级就越大)>shared-configs(下标越大优先级就越大)
server:
port: 8899
4.3 代码配置
@Value注解可以获取到配置中心的值,但是无法动态感知修改后的值,需要利用@RefreshScope注解
@RefreshScope
public class ScheduleContorller {
@Value("${tempurl}")
public String tempurl;
网友评论