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版本多数据源配置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • SpringBoot如何在运行时动态添加数据源

    此方案适用于解决springboot项目运行时动态添加数据源,非静态切换多数据源!!! 一.多数据源应用场景: 1.配置文件配置多数据源,如默认数据源:master,数据源1:salve1...,运行时动态切换已配置的数据源(master.salve1互相切换),无法在运行时动态添加配置文件中未配置的数据源. 2.配置一个默认数据源,运行时动态添加新数据源使用(本博客适用于此场景) 二.解决方案: Spring提供了AbstractRoutingDataSource用于动态路由数据源,第一种场景

  • 通过Spring Boot配置动态数据源访问多个数据库的实现代码

    之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中也描述了):只适用于数据库数量不多且固定的情况.针对数据库动态增加的情况无能为力. 下面讲的方案能支持数据库动态增删,数量不限. 数据库环境准备 下面一Mysql为例,先在本地建3个数据库用于测试.需要说明的是本方案不限数据库数量,支持不同的数据库部署在不同的服务器上.如图所示db_project_001.d

  • Spring Boot+Mybatis+Druid+PageHelper实现多数据源并分页的方法

    前言 本篇文章主要讲述的是SpringBoot整合Mybatis.Druid和PageHelper 并实现多数据源和分页.其中SpringBoot整合Mybatis这块,在之前的的一篇文章中已经讲述了,这里就不过多说明了.重点是讲述在多数据源下的如何配置使用Druid和PageHelper . Druid介绍和使用 在使用Druid之前,先来简单的了解下Druid. Druid是一个数据库连接池.Druid可以说是目前最好的数据库连接池!因其优秀的功能.性能和扩展性方面,深受开发人员的青睐. D

  • 使用Spring Boot快速构建基于SQLite数据源的应用

    为了提供一个单包易部署的服务器应用,考虑使用Spring Boot,因为其集成了Apache Tomcat,易于运行,免去绝大部分了服务器配置的步骤. 项目初始化 首先从mvn archetype:generate中选择 com.github.mkspcd:simple-webapp(或其他webapp模版) 模版生成项目结构. 更多关于maven请移步Maven - Users Centre 在pom.xml中添加parent来获取Spring Boot所需的最小依赖. <project xm

  • 详解SpringBoot和Mybatis配置多数据源

    目前业界操作数据库的框架一般是 Mybatis,但在很多业务场景下,我们需要在一个工程里配置多个数据源来实现业务逻辑.在SpringBoot中也可以实现多数据源并配合Mybatis框架编写xml文件来执行SQL.在SpringBoot中,配置多数据源的方式十分便捷, 下面开始上代码: 在pom.xml文件中需要添加一些依赖 <!-- Spring Boot Mybatis 依赖 --> <dependency> <groupId>org.mybatis.spring.b

  • SpringBoot整合MyBatisPlus配置动态数据源的方法

    MybatisPlus特性 •无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 •损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 •强大的 CRUD 操作:内置通用 Mapper.通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 •支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 •支持多种数据库:支持 MySQL.MariaDB.Ora

  • 通过springboot+mybatis+druid配置动态数据源

    一.建数据库和表 1.数据库demo1放一张user表 SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for user -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NU

  • 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.abc

  • SpringBoot中对应2.0.x版本的Redis配置详解

    properties格式: # REDIS (RedisProperties) # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=localhost # Redis服务器连接端口 spring.redis.port=6379 # Redis服务器连接密码(默认为空) spring.redis.password= # 连接池最大连接数(使用负值表示没有限制) spring.redis.jedis.po

  • Spring Boot 2.0多数据源配置方法实例详解

    两个数据库实例,一个负责读,一个负责写. datasource-reader: type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://192.168.43.61:3306/test?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false username: icbc password: icbc driver-class-na

  • Springboot启动不检查JPA的数据源配置方式

    目录 Springboot启动不检查JPA的数据源配置 1.问题 2.方案 设置Springboot项目忽略JPA启动 解决方案 Springboot启动不检查JPA的数据源配置 1.问题 有时我们使用spring boot ,在依赖中配置了spring data jpa的依赖,此时spring boot启动时会自动检测数据源的配置,如果没有则报无数据源的错误. 但是这个依赖必须要有,因为代码需要根据一些条件选择是否启用数据源,则么办? 2.方案 在SpringApplication实例中设置如

  • SpringBoot数据访问自定义使用Druid数据源的方法

    数据访问之Druid数据源的使用 说明:该数据源Druid,使用自定义方式实现,后面文章使用start启动器实现,学习思路为主. 为什么要使用数据源: ​数据源是提高数据库连接性能的常规手段,数据源会负责维持一个数据连接池,当程序创建数据源实例时,系统会一次性地创建多个数据库连接,并把这些数据库连接保存在连接池中. ​当程序需要进行数据库访问时,无须重新获得数据库连接,而是从连接池中取出一个空闲的数据库连接. ​当程序使用数据库连接访问数据库结束后,无须关闭数据库连接,而是将数据库连接归还给连接

  • mysql 8.0.15 winx64压缩包安装配置方法图文教程

    本文为大家分享了mysql 8.0.15 winx64压缩包安装配置方法,供大家参考,具体内容如下 1.在官网下载压缩包 2.解压缩包 3.增加配置文件,官方叫option file 配置文件my.ini内容(路径因情况而已,改成自己的就好了) [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 #basedir=F:\soft-install\mys

  • vue-cli3.0 环境变量与模式配置方法

    vue-cli3.0移除了配置文件目录: config和build文件夹.可以说是非常的精简了,那移除了配置文件目录后如何自定义配置环境变量和模式呢? 为什么需要配置环境变量和模式呢? 所有方法肯定是来源于现实的需求.在一个产品的前端开发过程中,一般来说会经历本地开发.测试脚本.开发自测.测试环境.预上线环境,然后才能正式的发布.对应每一个环境可能都会有所差异,比如说服务器地址.接口地址.websorket地址-- 等等.在各个环境切换的时候,就需要不同的配置参数,所以就可以用环境变量和模式,来

  • mysql 8.0.16 winx64.zip安装配置方法图文教程

    本文为大家分享了mysql 8.0.16 winx64.zip安装配置方法的具体代码,供大家参考,具体内容如下 下载zip安装包: MySQL8.0 For Windows zip包下载地址,进入页面后可以不登录.后点击底部"No thanks, just start my download."即可开始下载.或直接下载 环境:Windows 10 一.安装 1.1.解压zip包到安装目录 比如我的安装目录是:C:\Program Files\MySQL 1.2.配置文件 在Window

  • Spring Boot + Mybatis多数据源和动态数据源配置方法

    网上的文章基本上都是只有多数据源或只有动态数据源,而最近的项目需要同时使用两种方式,记录一下配置方法供大家参考. 应用场景 项目需要同时连接两个不同的数据库A, B,并且它们都为主从架构,一台写库,多台读库. 多数据源 首先要将spring boot自带的DataSourceAutoConfiguration禁掉,因为它会读取application.properties文件的spring.datasource.*属性并自动配置单数据源.在@SpringBootApplication注解中添加ex

  • Spring jndi数据源配置方法详解

    本文实例为大家分享了Spring jndi数据源配置代码,供大家参考,具体内容如下 xml配置: <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver

随机推荐