溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

springbootv2.0.3版本多數(shù)據(jù)源配置的示例分析

發(fā)布時(shí)間:2021-07-08 11:16:00 來(lái)源:億速云 閱讀:138 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹了springbootv2.0.3版本多數(shù)據(jù)源配置的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

springboot多數(shù)據(jù)源配置,在從springboot v1.5版本升級(jí)到v2.0.3時(shí),發(fā)現(xiàn)之前寫的多數(shù)據(jù)源的方式不可用了,捕獲錯(cuò)誤信息如:

異常:jdbcUrl is required with driverClassName.

先來(lái)說(shuō)下之前的多數(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ù)庫(kù),在原來(lái)默認(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);
 }

來(lái)創(chuàng)建兩個(gè)不同的jdbctemplate,到這里老版本這樣干沒(méi)有啥問(wèn)題,能夠正常的得到數(shù)據(jù);而升級(jí)未V2.03版本的時(shí)候提示:異常:jdbcUrl is required with driverClassName.

很顯然配置節(jié)點(diǎn)不能使用導(dǎo)致的,配置節(jié)點(diǎn)名字變了,要解決這問(wèn)題這里使用了托管DataSourceProperties的方式來(lái)對(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é)果如:

springbootv2.0.3版本多數(shù)據(jù)源配置的示例分析

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

springbootv2.0.3版本多數(shù)據(jù)源配置的示例分析

此刻我們?cè)賮?lái)運(yùn)行,同樣的也能出來(lái)數(shù)據(jù);兩種方式處理v2.03版本數(shù)據(jù)源問(wèn)題:

?編碼配置DataSourceProperties
?通過(guò)配置jdbc-url

通過(guò)數(shù)據(jù)源配置節(jié)點(diǎn)名變動(dòng)的問(wèn)題,引發(fā)了springboot在升級(jí)迭代的過(guò)程中一些細(xì)微的變動(dòng),這或許會(huì)給我們?cè)趯W(xué)習(xí)和升級(jí)過(guò)程中造成麻煩,所以官網(wǎng)每次升級(jí)的內(nèi)容說(shuō)明還是有必要看下的。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“springbootv2.0.3版本多數(shù)據(jù)源配置的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI