springboot v2.0.3版本多数据源配置方法

 更新时间:2018年11月09日 09:53:55   作者:神牛003  
这篇文章主要介绍了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版本多数据源配置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • JAVA中SpringBoot启动流程分析

    JAVA中SpringBoot启动流程分析

    这篇文章主要介绍了JAVA中SpringBoot启动流程分析的相关资料,需要的朋友可以参考下
    2023-01-01
  • MybatisPlus如何自动生成映射文件

    MybatisPlus如何自动生成映射文件

    这篇文章主要介绍了MybatisPlus如何自动生成映射文件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • SpringBoot+Logback实现一个简单的链路追踪功能

    SpringBoot+Logback实现一个简单的链路追踪功能

    Spring Boot默认使用LogBack日志系统,并且已经引入了相关的jar包,所以我们无需任何配置便可以使用LogBack打印日志。这篇文章主要介绍了SpringBoot+Logback实现一个简单的链路追踪功能,需要的朋友可以参考下
    2019-10-10
  • java使用RandomAccessFile类基于指针读写文件实例代码

    java使用RandomAccessFile类基于指针读写文件实例代码

    这篇文章主要介绍了java使用RandomAccessFile类基于指针读写文件实例代码,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • Java迭代器与Collection接口超详细讲解

    Java迭代器与Collection接口超详细讲解

    Collection也称集合,集合概述:集合是Java中提供的一种容器,可以用来存储多个数据。Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代 ArrayList 和 HashSet 等集合
    2022-07-07
  • Java深入浅出数组的定义与使用上篇

    Java深入浅出数组的定义与使用上篇

    数组是有序的元素序列,若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式
    2022-03-03
  • java编程中拷贝数组的方式及相关问题分析

    java编程中拷贝数组的方式及相关问题分析

    这篇文章主要介绍了java编程中拷贝数组的方式及相关问题分析,分享了Java中数组复制的四种方式,其次对二维数组的简单使用有一段代码示例,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • 浅析SpringBoot自动装配的实现

    浅析SpringBoot自动装配的实现

    springboot开箱即用,其实实现了自动装配,本文重点给大家介绍SpringBoot是如何做到自动装配的,感兴趣的朋友跟随小编一起看看吧
    2022-02-02
  • 详解Spring通过@Value注解注入属性的几种方式

    详解Spring通过@Value注解注入属性的几种方式

    本篇文章主要介绍了详解Spring通过@Value注解注入属性的几种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • java 最新Xss攻击与防护(全方位360°详解)

    java 最新Xss攻击与防护(全方位360°详解)

    这篇文章主要介绍了java 最新Xss攻击与防护(全方位360°详解),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01

最新评论