解決springboot利用ConfigurationProperties注解配置數(shù)據(jù)源無法讀取配置信息問題
@ConfigurationProperties是springboot新加入的注解,主要用于配置文件中的指定鍵值對映射到一個(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ù)源無法讀取配置信息的資料請關(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)文章
Java 使用maven實(shí)現(xiàn)Jsoup簡單爬蟲案例詳解
這篇文章主要介紹了Java 使用maven實(shí)現(xiàn)Jsoup簡單爬蟲案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09深入分析@Resource和@Autowired注解區(qū)別
這篇文章主要為大家介紹了深入分析@Resource和@Autowired注解區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04spring mvc @PathVariable綁定URI模板變量值方式
這篇文章主要介紹了spring mvc @PathVariable綁定URI模板變量值方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11基于jdk動(dòng)態(tài)代理和cglib動(dòng)態(tài)代理實(shí)現(xiàn)及區(qū)別說明
這篇文章主要介紹了基于jdk動(dòng)態(tài)代理和cglib動(dòng)態(tài)代理實(shí)現(xiàn)及區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05SpringBoot整合sharding-jdbc實(shí)現(xiàn)自定義分庫分表的實(shí)踐
本文主要介紹了SpringBoot整合sharding-jdbc實(shí)現(xiàn)自定義分庫分表的實(shí)踐,將通過自定義算法來實(shí)現(xiàn)定制化的分庫分表來擴(kuò)展相應(yīng)業(yè)務(wù),感興趣的可以了解一下2021-11-11Java并發(fā)Futures和Callables類實(shí)例詳解
Callable對象返回Future對象,該對象提供監(jiān)視線程執(zhí)行的任務(wù)進(jìn)度的方法, Future對象可用于檢查Callable的狀態(tài),然后線程完成后從Callable中檢索結(jié)果,這篇文章給大家介紹Java并發(fā)Futures和Callables類的相關(guān)知識,感興趣的朋友一起看看吧2024-05-05Java下載遠(yuǎn)程服務(wù)器文件到本地(基于http協(xié)議和ssh2協(xié)議)
這篇文章主要介紹了Java下載遠(yuǎn)程服務(wù)器文件到本地的方法(基于http協(xié)議和ssh2協(xié)議),幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2021-01-01