解決springboot利用ConfigurationProperties注解配置數(shù)據(jù)源無法讀取配置信息問題
@ConfigurationProperties是springboot新加入的注解,主要用于配置文件中的指定鍵值對(duì)映射到一個(gè)java實(shí)體類上。那么它是怎么發(fā)揮作用的呢?下面我們將揭開@ConfigurationProperties的魔法。
ConfigurationPropertiesBindingPostProcessor這個(gè)bean后置處理器,就是來處理bean屬性的綁定的,這個(gè)bean后置處理器后文將稱之為properties后置處理器。你需要知道以下幾件事:
ioc容器context的enviroment.propertySources記錄著系統(tǒng)屬性、應(yīng)用屬性以及springboot的默認(rèn)配置文件application.properties中的配置屬性等。properties后置處理器就是從其中找到匹配的配置項(xiàng)綁定到bean的屬性上去的。
屬性綁定是有覆蓋性的,操作系統(tǒng)環(huán)境變量可以覆蓋配置文件application.properties, java系統(tǒng)屬性可以覆蓋操作系統(tǒng)環(huán)境變量。更多的可以參考官網(wǎng) https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/htmlsingle/#boot-features-external-config
重點(diǎn)給大家介紹springboot配置數(shù)據(jù)源無法讀取配置信息的問題及解決方案,具體內(nèi)容如下:
出現(xiàn)的問題:
利用ConfigurationProperties注解配置數(shù)據(jù)源發(fā)現(xiàn)讀取的數(shù)據(jù)庫配置信息全部為null。
@Bean(name = "pq")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSourcePq() {
return DataSourceBuilder.create().build();
}
#配置信息
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
#MySQL配置
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/graduate?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username: root
password: root
debug過后發(fā)現(xiàn)配置文件屬性沒有讀取成功

解決方法:
@Bean(name = "pq")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSourcePq() {
//return DataSourceBuilder.create().build();
return new DruidDataSource();
}
出現(xiàn)問題原因:
暫時(shí)還不清楚,第一次使用這樣的方式配置數(shù)據(jù)源,可能有些細(xì)節(jié)沒有注意到。
以上就是解決springboot利用ConfigurationProperties注解配置數(shù)據(jù)源無法讀取配置信息問題的詳細(xì)內(nèi)容,更多關(guān)于springboot配置數(shù)據(jù)源無法讀取配置信息的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- SpringBoot yaml語法與數(shù)據(jù)讀取操作詳解
- SpringBoot讀取自定義配置文件方式(properties,yaml)
- 解決SpringBoot application.yaml文件配置schema 無法執(zhí)行sql問題
- SpringBoot+thymeleaf+Echarts+Mysql 實(shí)現(xiàn)數(shù)據(jù)可視化讀取的示例
- SpringBoot如何讀取配置文件中的數(shù)據(jù)到map和list
- springboot使用AOP+反射實(shí)現(xiàn)Excel數(shù)據(jù)的讀取
- SpringBoot讀取properties或者application.yml配置文件中的數(shù)據(jù)
- SPRINGBOOT讀取PROPERTIES配置文件數(shù)據(jù)過程詳解
- springboot openfeign從JSON文件讀取數(shù)據(jù)問題
- springboot讀取application.yaml文件數(shù)據(jù)的方法
相關(guān)文章
SpringBoot如何監(jiān)控Redis中某個(gè)Key的變化(自定義監(jiān)聽器)
這篇文章主要介紹了SpringBoot如何監(jiān)控Redis中某個(gè)Key的變化(自定義監(jiān)聽器),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
SpringBoot中添加監(jiān)聽器及創(chuàng)建線程的代碼示例
這篇文章主要介紹了SpringBoot中如何添加監(jiān)聽器及創(chuàng)建線程,文中有詳細(xì)的代碼示例,具有一定的參考價(jià)值,需要的朋友可以參考下2023-06-06
Java Calendar類的使用總結(jié)實(shí)例
這篇文章主要介紹了Java Calendar類的使用總結(jié)實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
使用 Spring Boot 2.0 + WebFlux 實(shí)現(xiàn) RESTful API功能
什么是 Spring WebFlux, 它是一種異步的, 非阻塞的, 支持背壓(Back pressure)機(jī)制的Web 開發(fā)框架.下面通過本文給大家介紹使用 Spring Boot 2.0 + WebFlux 實(shí)現(xiàn) RESTful API功能,需要的朋友參考下吧2018-01-01
詳解Mybatis 傳遞參數(shù)類型為List的取值問題
這篇文章主要介紹了詳解Mybatis 傳遞參數(shù)類型為List的取值問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10

