新项目在使用nacos
配置中心时一直连不上,调研发现是因为nacos
在springboot 2.4.0
之后的版本不再使用Bootstrap container,改为spring.config.import
方式引入.
具体详情见官方:Support spring.config.import #2349
样例:
# application.yml (不能是bootstrap.yml)
spring:
cloud:
nacos:
config:
group: DEFAULT_GROUP
server-addr: localhost:8848
config:
import:
- optional:nacos:test.yml # 监听 DEFAULT_GROUP:test.yml
- optional:nacos:test01.yml?group=group_01 # 覆盖默认 group, 监听 group_01:test01.yml
- optional:nacos:test02.yml?group=group_02&refreshEnabled=false # 不开启动态刷新
- nacos:test03.yml # 在拉取nacos配置异常时会快速失败, 会导致 spring 容器启动失败
等价于 (springboot 2.4.0 以下版本)
# bootstrap.yml
spring:
cloud:
nacos:
config:
name: test.yml
file-extension: yml
group: DEFAULT_GROUP
server-addr: localhost:8848
extension-configs:
- dataId: test01.yml
group: group_01
- dataId: test02.yml
group: group_02
refresh: false
注意:spring boot >= 2.4.0 默认不会启动 bootstrap 容器, 不要将上述配置写在 bootstrap.yml(properties) 里
dataId 不可缺省, 不要使用相同 dataId