springboot v2.0.3版本多數(shù)據(jù)源配置方法
本篇分享的是springboot多數(shù)據(jù)源配置,在從springboot v1.5版本升級到v2.0.3時,發(fā)現(xiàn)之前寫的多數(shù)據(jù)源的方式不可用了,捕獲錯誤信息如:
異常: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
配置了兩個數(shù)據(jù)庫,在原來默認的datasource節(jié)點下面增加了seconddatasource節(jié)點的配置,然后主要的代碼如:
@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)建兩個不同的jdbctemplate,到這里老版本這樣干沒有啥問題,能夠正常的得到數(shù)據(jù);而升級未V2.03版本的時候提示:異常:jdbcUrl is required with driverClassName.
很顯然配置節(jié)點不能使用導致的,配置節(jié)點名字變了,要解決這問題這里使用了托管DataSourceProperties的方式來對數(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(); }
能夠看出多了一級DataSourceProperties的創(chuàng)建,此時能夠運行出結果如:
除了編碼的這種方式也可以采用上面說的既然是配置找不到,那配置肯定是改名了,根據(jù)錯誤提示我們不放把url改名未jdbc-url,具體如下:
此刻我們再來運行,同樣的也能出來數(shù)據(jù);兩種方式處理v2.03版本數(shù)據(jù)源問題:
•編碼配置DataSourceProperties
•通過配置jdbc-url
通過數(shù)據(jù)源配置節(jié)點名變動的問題,引發(fā)了springboot在升級迭代的過程中一些細微的變動,這或許會給我們在學習和升級過程中造成麻煩,所以官網(wǎng)每次升級的內(nèi)容說明還是有必要看下的。
總結
以上所述是小編給大家介紹的springboot v2.0.3版本多數(shù)據(jù)源配置方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!