在bootstrap.yml中配置, 配置文件中可以不配置参数,直接使用配置中心的参数数据
spring:
profiles:
# 默认配置文件前缀
active: dev
# 服务名称
application:
name: gateway-service
main:
allow-bean-definition-overriding: true
cloud:
loadbalancer:
retry:
enabled: false
nacos:
discovery:
server-addr: 127.0.0.1:8848
username: "nacos"
password: "nacos"
config:
server-addr: 127.0.0.1:8848
username: "nacos"
password: "nacos"
# 指定配置文件对应的分组
group: SERVICE_CONFIG_GROUP
# 开启刷新,能够获取最新的配置数据
refresh-enabled: true
# 选择配置中心那个命名空间下的文件
namespace: dev
# 配置文件前缀,配置此参数,就不使用application.name
# prefix: gateway
# 配置中心文件后缀
file-extension: yaml
配置文件说明
${prefix} - ${spring.profiles.active} . ${file-extension}
(1)prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
(2)spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档
(3)file-extension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension来配置。目前只支持 properties 和 yaml 类型。
注意,当 activeprofile 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 {prefix}.{file-extension}
摘录自 青苔猿猿 Nacos认识
完整配置文件名称:
无cloud.nacos.config.prefix配置:
${spring.application.name}-${spring.profiles.active}.${file-extension}
最终文件名称 gateway-service-dev.yaml
有cloud.nacos.config.prefix配置:
${prefix}-${spring.profiles.active}.${file-extension}
最终文件名称 gateway-dev.yaml
代码中使用
类上使用@RefreshScope注解,达到动态刷新
@RefreshScope
class xxx
@Value("${xx.xx}")
private String xxxx;