SpringBoot無法識別bootstrap.yml小綠葉問題的解決辦法
錯誤信息
問題定位
一般單獨使用 Spring Boot 時,bootstrap.yml 文件一般是不會生效的,也就是沒有 小綠葉 圖標;如果使用了 Spring Cloud 組件 bootstrap.yml 才會生效,需要引入 spring-cloud-commons-dependencies 這個包依賴。 另外 bootstrap.yml 的加載順序優(yōu)先于 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>
拓展:
springboot讀取不到bootstrap.yml配置項問題
今天在搭建項目的時候,采用springboot 2.4.6版本,然后添加bootstrap.yml配置文件后突然發(fā)現(xiàn)一直讀取不到配置。之前在進行項目依賴漏洞版本的升級時有對其進行簡單了解。
原因剖析
簡單的說就是:由于bootstrap是spring cloud帶來的附加品,所以需要有cloud相關的一些配置才能夠去正常讀取它,否則只會去讀取application.yml。
解決方法
如果springboot版本低于2.4.0版本的話,需要在啟動類對應的pom里添加依賴
<!-- spring cloud,基于spring cloud才會讀取bootstrap.yml --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-context</artifactId> </dependency>
如果springboot版本高于2.4.0版本的話,則在啟動類對應的pom里添加依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency>
例如我這里用到的是2.4.6版本,那么對應需要加的依賴為:
<!-- spring cloud,基于spring cloud才會讀取bootstrap.yml --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> <version>3.0.3</version> </dependency>
至此,啟動banner和@value("${spring.application.name}")都可以讀取到bootstrap.yml文件中的值。
以上就是SpringBoot無法識別bootstrap.yml小綠葉問題的解決辦法的詳細內(nèi)容,更多關于SpringBoot無法識別bootstrap.yml的資料請關注腳本之家其它相關文章!
相關文章
Mybatis控制臺打印SQL語句的兩種實現(xiàn)方式
在使用Mybatis開發(fā)時,由于可以動態(tài)拼接SQL,當動態(tài)SQL拼接塊過多,直接從*mapper.xml中找出完整的SQL較難,此時,可以通過兩種方法調(diào)試出SQL,方法一,將ibatislog4j運行級別調(diào)到DEBUG,在控制臺打印出ibatis運行的SQL語句2024-10-10