springboot v2.0.3版本多數據源配置方法

發布時間: 2019-06-18 18:29:53 來源: 互聯網 欄目: Java 點擊:

這篇文章主要介紹了springboot v2.0.3版本多數據源配置方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下

本篇分享的是springboot多數據源配置,在從springboot v1.5版本升級到v2.0.3時,發現之前寫的多數據源的方式不可用了,捕獲錯誤信息如:

異常:jdbcUrl is required with driverClassName.

先來說下之前的多數據源配置如:

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

配置了兩個數據庫,在原來默認的datasource節點下面增加了seconddatasource節點的配置,然后主要的代碼如:

@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);
 }

來創建兩個不同的jdbctemplate,到這里老版本這樣干沒有啥問題,能夠正常的得到數據;而升級未V2.03版本的時候提示:異常:jdbcUrl is required with driverClassName.

很顯然配置節點不能使用導致的,配置節點名字變了,要解決這問題這里使用了托管DataSourceProperties的方式來對數據配置從新賦值,具體代碼如:

@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();
 }

能夠看出多了一級DataSourceProperties的創建,此時能夠運行出結果如:

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

此刻我們再來運行,同樣的也能出來數據;兩種方式處理v2.03版本數據源問題:

•編碼配置DataSourceProperties
•通過配置jdbc-url

通過數據源配置節點名變動的問題,引發了springboot在升級迭代的過程中一些細微的變動,這或許會給我們在學習和升級過程中造成麻煩,所以官網每次升級的內容說明還是有必要看下的。

總結

以上所述是小編給大家介紹的springboot v2.0.3版本多數據源配置方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對我們網站的支持!

本文標題: springboot v2.0.3版本多數據源配置方法
本文地址: http://www.leskzw.tw/ruanjian/java/244062.html

如果認為本文對您有所幫助請贊助本站

支付寶掃一掃贊助微信掃一掃贊助

  • 支付寶掃一掃贊助
  • 微信掃一掃贊助
  • 支付寶先領紅包再贊助
    聲明:凡注明"本站原創"的所有文字圖片等資料,版權均屬編程客棧所有,歡迎轉載,但務請注明出處。
    Storm框架整合springboot的方法使用SpringBoot整合ssm項目的實例詳解
    Top 广东好彩1中奖规则