springcloud集成nacos配置中心
一、添加依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>${ latest.version}</version> </dependency>
创建bootstrap.yml配置文件,并设置注册中心地址,如果nacos也作为注册中心的话,也可以添加进去
server: port: 8092 spring: application: name: nacos-consumer cloud: nacos: discovery: server-addr: 192.168.25.129:8848 namespace: b88583d9-0d66-49e8-a4b8-6716cc6fdda7 cluster-name: DEFAULT group: test1 config: server-addr: 192.168.25.129:8848 namespace: b88583d9-0d66-49e8-a4b8-6716cc6fdda7 cluster-name: DEFAULT group: test1 file-extension: yaml
之所以需要配置 spring.application.name ,是因为它是构成 Nacos 配置管理 dataId字段的一部分。
在 Nacos Spring Cloud 中,dataId 的完整格式如下:
通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新:
package org.example.nacosconsumer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RefreshScope public class ConsumerController { @Value("${useLocalCache:false}") private boolean useLocalCache; @Value("${customer.name}") private String name; @RequestMapping("config") public String getConfig() { return name + useLocalCache; } }
控制台配置内容
启动项目,并调用接口获取配置成功 修改配置信息后,再次获取配置会实时生效
添加扩展配置文件 有时我们有多个配置文件需要外部化,nacos支持多配置文件
server: port: 8092 spring: application: name: nacos-consumer cloud: nacos: discovery: server-addr: 192.168.25.129:8848 namespace: b88583d9-0d66-49e8-a4b8-6716cc6fdda7 cluster-name: DEFAULT group: test1 config: server-addr: 192.168.25.129:8848 namespace: b88583d9-0d66-49e8-a4b8-6716cc6fdda7 cluster-name: DEFAULT group: test1 file-extension: yaml extension-configs[0]: #配置文件1 data-id: 11111.yaml #dataId必须带文件扩展名 group: test1 #文件组 refresh: true #是否刷新 extension-configs[1]: #配置文件2 data-id: 22222.yaml group: test1 refresh: true
注意: 配置文件获取规则 规则一: spring-cload-nacos-config-enabled=false 配置开关,是否从nacos上获取配置。如果为false会获取本地配置文件application.yml。 如果配置了spring.profiles.active 则会获取对应环境的配置文件 规则二: 同理即使spring-cload-nacos-config-enabled=true 开关开启,但是nacos没有配置文件,也会取本地默认配置的文件application.yml。 如果配置了spring.profiles.active 则会获取对应环境的配置文件
下一篇:
一文带你搞懂分布式锁!