springboot v2.0.3版本多數(shù)據(jù)源配置方法
本篇分享的是springboot多數(shù)據(jù)源配置,在從springboot v1.5版本升級(jí)到v2.0.3時(shí),發(fā)現(xiàn)之前寫的多數(shù)據(jù)源的方式不可用了,捕獲錯(cuò)誤信息如:
異常:jdbcUrl is required with driverClassName.
先來說下之前的多數(shù)據(jù)源配置如:
spring: datasource: url: jdbc:sqlserver://192.168.122.111;DatabaseName=flight username: sa password: 1234.abcd driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver seconddatasource: url: jdbc:sqlserver://192.168.122.111;DatabaseName=flight2 username: sa password: 1234.abcd driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
配置了兩個(gè)數(shù)據(jù)庫,在原來默認(rèn)的datasource節(jié)點(diǎn)下面增加了seconddatasource節(jié)點(diǎn)的配置,然后主要的代碼如:
@Primary
@Bean
@ConfigurationProperties(prefix = "spring.seconddatasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "secodDataSource")
@ConfigurationProperties(prefix = "spring.seconddatasource")
public DataSource secodDataSource() {
return DataSourceBuilder.create().build();
}
@Primary
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean(name = "secondJdbcTemplate")
public JdbcTemplate secondJdbcTemplate(@Qualifier(value = "secodDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
來創(chuàng)建兩個(gè)不同的jdbctemplate,到這里老版本這樣干沒有啥問題,能夠正常的得到數(shù)據(jù);而升級(jí)未V2.03版本的時(shí)候提示:異常:jdbcUrl is required with driverClassName.
很顯然配置節(jié)點(diǎn)不能使用導(dǎo)致的,配置節(jié)點(diǎn)名字變了,要解決這問題這里使用了托管DataSourceProperties的方式來對(duì)數(shù)據(jù)配置從新賦值,具體代碼如:
@Bean
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSourceProperties dataSourceProperties(){
return new DataSourceProperties();
}
@Bean("secondProperties")
@ConfigurationProperties(prefix = "spring.seconddatasource")
public DataSourceProperties secondProperties(){
return new DataSourceProperties();
}
@Primary
@Bean
public DataSource dataSource(DataSourceProperties dataSourceProperties) {
return dataSourceProperties.initializeDataSourceBuilder().build();
}
@Bean(name = "secodDataSource")
public DataSource secodDataSource(@Qualifier(value = "secondProperties") DataSourceProperties dataSourceProperties) {
return dataSourceProperties.initializeDataSourceBuilder().build();
}
能夠看出多了一級(jí)DataSourceProperties的創(chuàng)建,此時(shí)能夠運(yùn)行出結(jié)果如:

除了編碼的這種方式也可以采用上面說的既然是配置找不到,那配置肯定是改名了,根據(jù)錯(cuò)誤提示我們不放把url改名未jdbc-url,具體如下:

此刻我們?cè)賮磉\(yùn)行,同樣的也能出來數(shù)據(jù);兩種方式處理v2.03版本數(shù)據(jù)源問題:
•編碼配置DataSourceProperties
•通過配置jdbc-url
通過數(shù)據(jù)源配置節(jié)點(diǎn)名變動(dòng)的問題,引發(fā)了springboot在升級(jí)迭代的過程中一些細(xì)微的變動(dòng),這或許會(huì)給我們?cè)趯W(xué)習(xí)和升級(jí)過程中造成麻煩,所以官網(wǎng)每次升級(jí)的內(nèi)容說明還是有必要看下的。
總結(jié)
以上所述是小編給大家介紹的springboot v2.0.3版本多數(shù)據(jù)源配置方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Java Web 實(shí)現(xiàn)QQ登錄功能一個(gè)帳號(hào)同一時(shí)間只能一個(gè)人登錄
對(duì)于一個(gè)帳號(hào)在同一時(shí)間只能一個(gè)人登錄,下文給大家介紹的非常詳細(xì),對(duì)java web qq 登錄功能感興趣的朋友一起看看吧2016-11-11
java多線程之Future和FutureTask使用實(shí)例
這篇文章主要介紹了java多線程之Future和FutureTask使用實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09
struts1登錄示例代碼_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了struts1登錄示例代碼,需要的朋友可以參考下2017-08-08
mybatis配置文件簡介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了mybatis配置文件簡介的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09

