题外话
如果各位客官有需要开发一些小小需求,可以私我哦,承接小需求开发,或问题定位(仅限java),价格私聊哈
今天在搭建项目的时候,采用springboot 2.6.8版本,然后添加bootstrap.yml配置文件后突然发现一直读取不到配置。之前在进行项目依赖漏洞版本的升级时有对其进行简单了解。
原因剖析
简单的说就是:由于bootstrap是spring cloud带来的附加品,所以需要有cloud相关的一些配置才能够去正常读取它,否则只会去读取application.yml/properties。
也可以看看别人怎么讲的:SpringBoot不读取bootstrap.yml/properties文件,我就不详述了。
解决方法
如果springboot版本低于2.4.0版本的话,需要在启动类对应的pom里添加依赖
<!-- spring cloud,基于spring cloud才会读取bootstrap.yml -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-context</artifactId>
</dependency>
注:依赖版本要用对应springboot的版本,不知道的可以查看之前写的博客里面有说到:maven升级漏洞依赖jar包
如果springboot版本高于2.4.0版本的话,则在启动类对应的pom里添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
例如我这里用到的是2.6.8版本,那么对应需要加的依赖为:
<!-- spring cloud,基于spring cloud才会读取bootstrap.yml -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.1.3</version>
</dependency>
配置项问题导致读取不到bootstrap.yml配置
根据之前依赖升级所了解到上面的方式,发现还是无法读取到配置文件的配置,百思不得其解,后来发现我的配置项有一点和之前的不一样。
#低版本springboot的配置项
spring:
profiles:
active: dev
但是用这个后idea提示我说这个配置项已经被弃用了,让我用最新的,于是去网上换了个高版本的配置项
#高版本springboot配置项
spring:
config:
activate:
on-profiles:
- dev
在改成高版本配置项后发现,启动后一直无法读取到bootstrap.yml,但是也不会启动报错,把它改成低版本的配置项后又可以正常读取了(基于前面已经加好对应版本的依赖)。
这个让我百思不得其解,于是在此做一下笔记,如果有人知道这个问题是为什么,希望也可以评论或私信一下我。万分感谢!
参考链接:
[1]:https://blog.csdn.net/tian_yan71/article/details/120348981