解決springboot利用ConfigurationProperties注解配置數(shù)據(jù)源無(wú)法讀取配置信息問(wèn)題
@ConfigurationProperties是springboot新加入的注解,主要用于配置文件中的指定鍵值對(duì)映射到一個(gè)java實(shí)體類上。那么它是怎么發(fā)揮作用的呢?下面我們將揭開(kāi)@ConfigurationProperties的魔法。
ConfigurationPropertiesBindingPostProcessor這個(gè)bean后置處理器,就是來(lái)處理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ù)源無(wú)法讀取配置信息的問(wèn)題及解決方案,具體內(nèi)容如下:
出現(xiàn)的問(wèn)題:利用ConfigurationProperties注解配置數(shù)據(jù)源發(fā)現(xiàn)讀取的數(shù)據(jù)庫(kù)配置信息全部為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過(guò)后發(fā)現(xiàn)配置文件屬性沒(méi)有讀取成功

@Bean(name = 'pq') @ConfigurationProperties(prefix = 'spring.datasource') public DataSource dataSourcePq() {//return DataSourceBuilder.create().build();return new DruidDataSource(); }出現(xiàn)問(wèn)題原因:
暫時(shí)還不清楚,第一次使用這樣的方式配置數(shù)據(jù)源,可能有些細(xì)節(jié)沒(méi)有注意到。
以上就是解決springboot利用ConfigurationProperties注解配置數(shù)據(jù)源無(wú)法讀取配置信息問(wèn)題的詳細(xì)內(nèi)容,更多關(guān)于springboot配置數(shù)據(jù)源無(wú)法讀取配置信息的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. 什么是python的自省2. php模擬實(shí)現(xiàn)斗地主發(fā)牌3. 詳解Android studio 動(dòng)態(tài)fragment的用法4. spring acegi security 1.0.0 發(fā)布5. MyBatis中的JdbcType映射使用詳解6. vue 使用localstorage實(shí)現(xiàn)面包屑的操作7. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)8. Vuex localStorage的具體使用9. Python random庫(kù)使用方法及異常處理方案10. jQuery 實(shí)現(xiàn)DOM元素拖拽交換位置的實(shí)例代碼

網(wǎng)公網(wǎng)安備