今天发现在引入
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency
新增bootstrap.properties配置文件,内容如下
spring.application.name=nacos-config
server.port=4001
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
在确认nacos上配置正确后,仍然无法访问到配置的值
在引入 discovery后
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
后直接提示
java.lang.IllegalArgumentException: Param 'serviceName' is illegal, serviceName is blank
怀疑bootstrap配置文件根本未加载,百度发现新版本的cloud默认不加载bootstrap配置文件
解决方法
A 增加启动参数 spring.cloud.bootstrap.enabled=true或者spring.config.use-legacy-processing=true
B 增加依赖spring-cloud-starter-bootstrap
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
该依赖下只有一个类Marker
也没有什么实际的内容
实现原理
在监听器BootstrapApplicationListener.class中我们可以找到答案
抽象类Marker为什么可以加载bootstrap出现了