【教程】SpringCloud+Nacos+Feign+Gateway ( 六 ) Nacos 配置中心(推荐)
·
【教程】SpringCloud+Nacos+Feign+Gateway ( 六 ) Nacos 配置中心(推荐)
代码参考:https://gitee.com/guanweiCode/SpringCloudGw
1. 需要参考上几篇文档 配置连接到Nacos
2.增加配置中心依赖
<!-- Nacos配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2.增加配置

yml配置文件
spring:
profiles:
# 当前激活环境
active: @profile.name@
cloud:
nacos:
config:
# Nacos 认证用户
username: nacos
# Nacos 认证密码
password: nacos
# 命名空间 常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等
namespace: @config.namespace@
# 配置中心地址
server-addr: @config.server-addr@
# 配置对应的分组
group: @config.group@
# 配置文件后缀
file-extension: yaml
prefix: @prefix.name@
# 支持多个共享 Data Id 的配置,优先级小于extension-configs,自定义 Data Id 配置 属性是个集合,内部由 Config POJO 组成。Config 有 3 个属性,分别是 dataId, group 以及 refresh
#shared-configs[0]:
#data-id: ${prefix.name}-common.yaml # 配置文件名-Data Id
#group: ${config.group} # 默认为DEFAULT_GROUP
#refresh: false # 是否动态刷新,默认为false
extension-configs:
#日志配置
- data-id: gwcloud-log-common.yaml # 配置文件名-Data Id
group: common # 默认为DEFAULT_GROUP
refresh: true # 是否动态刷新,默认为false
#日志2配置
- data-id: gwcloud-log-common2.yaml # 配置文件名-Data Id
group: common2 # 默认为DEFAULT_GROUP
refresh: true # 是否动态刷新,默认为false
discovery:
namespace: @config.namespace@
server-addr: @config.server-addr@
watch:
enabled: false
引用多个配置文件
# shared-configs 支持多个共享 Data Id 的配置,优先级小于extension-configs,自定义 Data Id 配置 属性是个集合,内部由 Config POJO 组成。Config 有 3 个属性,分别是 dataId, group 以及 refresh
extension-configs:
#日志配置
- data-id: gwcloud-log-common.yaml # 配置文件名-Data Id
group: common # 默认为DEFAULT_GROUP
refresh: true # 是否动态刷新,默认为false
#日志2配置
- data-id: gwcloud-log-common2.yaml # 配置文件名-Data Id
group: common2 # 默认为DEFAULT_GROUP
refresh: true # 是否动态刷新,默认为false
配置的优先级
Spring Cloud Alibaba Nacos Config 目前提供了三种配置能力从 Nacos 拉取相关的配置。
A: 通过 spring.cloud.nacos.config.shared-dataids 支持多个共享 Data Id 的配置
B: 通过 spring.cloud.nacos.config.extension-config[n].data-id 的方式支持多个扩展 Data Id 的配置
C: 通过内部相关规则(应用名、应用名+ Profile )自动生成相关的 Data Id 配置
当三种方式共同使用时,优先级关系是:A < B < C
对应POM文件

3 Nacos增加空间

4. 实时刷新配置 注解 @RefreshScope
package com.gw.nacos.provide.user.controller;
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;
import java.util.HashMap;
import java.util.Map;
/**
* @Title: 标题
* @Description: 描述
* @Version: v1.0
* @Author: Mr.Guan
* @Mail GuanWeiMail@163.com
* @DateTime: 2021-02-27 16:18:24
* @Project springcloud-gw-parent
* @Package com.gw.nacos.provide.user.controller
*/
@RefreshScope //实时刷新配置
@RestController
@RequestMapping("nacos-config")
public class NacosConfigController {
@Value("${nacosconfig.user.name}")
String userName;
@Value("${log.user.name}")
String logUserName;
@Value("${spring.profiles.active}")
String active;
@Value("${nacosconfig.user.age}")
int age;
/**
* 测试配置中心
* @return
*/
@RequestMapping("/getUserConfig")
public Object getUserConfig(){
Map<String,Object> map = new HashMap<>(2);
map.put("userName",userName);
map.put("age",age);
map.put("active",active);
map.put("logUserName",logUserName);
return map;
}
}
更多推荐
所有评论(0)