springboot启动不加载bootstrap.yml文件的问题
目录
- springboot启动不加载bootstrap.yml文件
- 无法识别 bootstrap.yml 小绿叶问题
- 错误信息
- 问题定位
- 解决
springboot启动不加载bootstrap.yml文件
使用nacos做配置中心,但是程序启动失败,没有拉取配置中心的配置信息。
检查之后发现是bootstrap.yml文件没有被加载,在项目的pom.xml文件中添加如下依赖,可能需要添加版本号,具体版本号可以去maven仓库查询,我使用的是 3.0.1版本。
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency>
重新导入依赖,然后重启项目,在项目日志里可以看到下面这一段信息,并且服务正常启动成功,说明服务启动成功。
2021-03-07 22:47:10.953 INFO 54020 --- [ restartedMain] b.c.PropertySourceBootstrapConfiguration : Located property source: [BootstrapPropertySource {name='bootstrapProperties-xxx-xxx-dev.yml,dev'}, BootstrapPropertySource {name='bootstrapProperties-xxx-xxx.yml,dev'}, BootstrapPropertySource {name='bootstrapProperties-xxx-xxx,dev'}]
无法识别 bootstrap.yml 小绿叶问题
错误信息
问题定位
一般单独使用 Spring Boot 时,bootstrap.yml 文件一般是不会生效的,也就是没有 小绿叶 图标;如果使用了 Spring Cloud 组件 bootstrap.yml 才会生效,需要引入 spring-cloud-commons-dependencies 这个包依赖。 另外 bootstrap.yml 的加载顺序优先于 application.yml。
解决
方案一:可以引入 Spring Cloud 中的某一组件即可,如 Eureka 或则 Feign 等,因为里面包含 spring-cloud-commons-dependencies 依赖。
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
方案二:单独引入 spring-cloud-commons-dependencies 依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-commons-dependencies</artifactId> <version>${spring-cloud-commons.version}</version> </dependency>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。