添加配置集
- 在nacos 配置中心新建即可
实时刷新配置项
- 依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
- 修改配置文件
application.yml
为bootstrap.yaml
- 添加config配置
server:
port: 8083
spring:
application:
name: m-service-resume
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8 &serverTimezone=UTC
username: root
password: root
jpa:
database: MySQL
show-sql: true
hibernate:
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl #避免将驼峰命名转换为下划线命名
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
#集群名称
cluster-name: BJ
#所属命名空间
namespace: 59486577-18d5-459c-94ad-cbdf6f3d9d5a
#nacos config 配置
config:
server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
namespace: 59486577-18d5-459c-94ad-cbdf6f3d9d5a
group: DEFAULT_GROUP
file-extension: yaml
- 获取配置config类,添加
@RefreshScope
注解
@RestController
@RequestMapping("/config")
//实时刷新注解
@RefreshScope
public class ConfigController {
@Value("${my.message}")
private String myMessage;
@Value("${mysql.url}")
private String mysqlUrl;
@GetMapping("/viewconfig")
public String viewconfig() {
return "msg==>" + myMessage + " mySqlUrl=>" + mysqlUrl;
}
}
- 访问
- 修改配置中的内容,100为200
- 实时刷新完成
- 修改配置中的内容,100为200
监听查询
- nacos配置中心
dataId扩展
从nacos中 获取多个配置文件
- 在nacos 创建多个配置文件
abc.yaml
、def.yaml
- 获取多个配置文件
cloud:
nacos:
discovery:
config:
server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
namespace: 59486577-18d5-459c-94ad-cbdf6f3d9d5a
group: DEFAULT_GROUP
file-extension: yaml
#获取多个配置文件
ext-config[0]:
data-id: abc.yaml
group: DEFAULT_GROUP
refresh: true #扩展dataId 的动态刷新
ext-config[1]:
data-id: def.yaml
group: DEFAULT_GROUP
refresh: true
- 重启服务
- 修改nacos中的配置重新访问接口(扩展配置文件动态刷新)
dataId优先级问题
优先级:根据规则⽣成的dataId > 扩展的dataId(对于扩展的dataId,[n] n越⼤优先级越⾼)
-
将
m-service-resume.yaml
中的my.message
配置copy 到abc.yaml
、def.yaml
数字修改为300 ,400
-
重启项目,结果
-
扩展的配置文件之间的优先级,新建配置项
-
结果