springboot 多数据源配置不生效遇到的坑及解决

目录
  • 多数据源配置不生效遇到的坑
    • 解决方案
  • 踩坑SpringBoot配置多数据源,循环引用问题
    • 解决办法

多数据源配置不生效遇到的坑

**
同步数据时遇到多个数据源切换的问题,配置了yml文件时候发现启动的时候不加载数据源的配置。
**
spring:
datasource:
db1:
driver-class-name:xxxxxxx
url:jdbc:xxxxxxx
username:root
password:111111
db2:
driver-class-name:xxxxxx
url:xxxxxx
username:root
password:111111

等等。。。。。。。。

每个配置都检查了,没有写错,对了好几遍。折腾了半天。。。。。。

解决方案

yml配置文件里格式不对齐,db1 db2 db3 要在同一个列上

编译器没有任何提示,多了一个空格或者不对齐都不会加载。

踩坑SpringBoot配置多数据源,循环引用问题

最近在使用SpringBoot配置AOP动态数据源,通过继承AbstractRoutingDataSource这个类来实现的,在使用的时候报了一个错误,如下

大概就是dynamicDataSource依赖dataSourceScxys, dataSourceScxys依赖DataSourceInitializerInvoker,而DataSourceInitializerInvoker又依赖dynamicDataSource,造成一个循环引用,在Spring初始化bean的时候就不知道该先初始化哪一个。

解决办法

在springboot启动的时候排除其自动配置类,如下

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • springboot配置多数据源后mybatis拦截器失效的解决

    目录 1. 解析配置文件初始化数据源 2. 定义数据源枚举类型 3. TheadLocal保存数据源类型 4. 自定义sqlSessionProxy 5. 自定义路由 6. 定义切面,dao层定义切面 7. 最后在写库增加事务管理 8. 在配置文件中增加数据源配置 配置文件是通过springcloudconfig远程分布式配置.采用阿里Druid数据源.并支持一主多从的读写分离.分页组件通过拦截器拦截带有page后缀的方法名,动态的设置total总数. 1. 解析配置文件初始化数据源 @Conf

  • 解决spring boot 1.5.4 配置多数据源的问题

    spring boot 已经支持多数据源配置了,无需网上好多那些编写什么类的,特别麻烦,看看如下解决方案,官方的,放心! 1.首先定义数据源配置 #=====================multiple database config============================ #ds1 first.datasource.url=jdbc:mysql://localhost/test?characterEncoding=utf8&useSSL=true first.datasou

  • 关于springboot配置druid数据源不生效问题(踩坑记)

    pom文件 如果你的springboot项目要用到druid,那么这三个依赖必不可少: <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependency> <!--Druid--> <depen

  • springboot 多数据源配置不生效遇到的坑及解决

    目录 多数据源配置不生效遇到的坑 解决方案 踩坑SpringBoot配置多数据源,循环引用问题 解决办法 多数据源配置不生效遇到的坑 ** 同步数据时遇到多个数据源切换的问题,配置了yml文件时候发现启动的时候不加载数据源的配置. ** spring: datasource: db1: driver-class-name:xxxxxxx url:jdbc:xxxxxxx username:root password:111111 db2: driver-class-name:xxxxxx url

  • springboot多数据源配置及切换的示例代码详解

    注:本文的多数据源配置及切换的实现方法是,在框架中封装,具体项目中配置及使用,也适用于多模块项目 配置文件数据源读取 通过springboot的Envioment和Binder对象进行读取,无需手动声明DataSource的Bean yml数据源配置格式如下: spring: datasource: master: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver url:

  • 基于SpringBoot bootstrap.yml配置未生效的解决

    我就废话不多说了,大家还是直接看代码吧~ <!--需要引入该jar才能使bootstrap配置文件生效--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-context</artifactId> </dependency> 补充知识:SpringBoot不读取bootstrap.yml/properti

  • SpringBoot多数据源配置详细教程(JdbcTemplate、mybatis)

    多数据源配置 首先是配置文件 这里采用yml配置文件,其他类型配置文件同理 我配置了两个数据源,一个名字叫ds1数据源,一个名字叫ds2数据源,如果你想配置更多的数据源,继续加就行了 spring: # 数据源配置 datasource: ds1: #数据源1 driver-class-name: com.mysql.jdbc.Driver # mysql的驱动你可以配置别的关系型数据库 url: jdbc:mysql://ip:3306/db1 #数据源地址 username: root #

  • SpringBoot多数据源配置并通过注解实现动态切换数据源

    目录 1. 环境准备 1.1 数据库准备 1.2 项目创建 2. ThreadLocal类介绍 3. AbstractRoutingDataSource类介绍 4. 具体实现 4.1 定义数据源枚举类 4.2 创建动态多数据源类 4.3 创建动态多数据源配置类 4.4 自定义注解用于指定数据源 4.5 AOP实现动态切换数据源 5. 测试使用 5.1 配置数据源 5.2 创建实体类 5.3 服务层代码 5.4 控制层代码 1. 环境准备 1.1 数据库准备 一个本地环境的MySQL数据库,数据库

  • SpringBoot对Druid配置SQL监控功能失效问题及解决方法

    由于我使用的是properties类型的配置文件,在对druid的参数进行配置的时候,多加了druid,也就是spring.datasource.druid.xxx,运行sql语句后SQL监控功能无效. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/userinfo?useUnicode=true&characterEnc

  • SpringBoot多数据源配置的全过程记录

    目录 前言 配置文件 依赖 构建 AbstractRoutingDataSource 数据源切换 目录 总结 前言 多数据源的核心就是向 IOC 容器注入 AbstractRoutingDataSource 和如何切换数据源.注入的方式可以是注册 BeanDefinition 或者是构建好的 Bean,切换数据源的方式可以是方法参数或者是注解切换(其他的没想象出来),具体由需求决定. 我的需求是统计多个库的数据,将结果写入另一个数据库,统计的数据库数量是不定的,无法通过 @Bean 直接注入,又

  • 关于配置babel-plugin-import报错的坑及解决

    目录 配置babel-plugin-import报错的坑 问题 报错内容 错误原因 解决方案 babel-plugin-import配置babel按需引入antd模块报错.bezierEasingMixin() 解决方案 配置babel-plugin-import报错的坑 用的是antd design vue生成的项目,按着官网的提示一步一步下来,在配置babel-plugin-import时候发生了报错,一直找了很久没有解决问题 问题 项目可以正常运行,当配置babel-plugin-impo

  • 亲测SpringBoot参数传递及@RequestBody注解---踩过的坑及解决

    目录 SpringBoot 参数传递及@RequestBody注解注意点 前台正确的js书写格式是 后台正确的Controller书写格式是 RequestBody 作为参数使用 为了证实这个想法,自己书写一个请求类 小结一下 SpringBoot 参数传递及@RequestBody注解注意点 前台正确的js书写格式是 //点击查询, 执行下面这个函数 $("#searchByCriteria").click(function () { //var paramdata = $(&quo

  • vue项目配置element-ui容易遇到的坑及解决

    目录 vue配置element-ui遇到的坑 步骤1.npm安装 步骤2 步骤3.测试 vue element-ui需要注意的问题 vue配置element-ui遇到的坑 注意:本文章参照element-ui官方文档,快速上手部分,的部分教程 步骤1.npm安装 npm i element-ui -S 步骤2 2-1.完整引入 在 main.js 中写入以下内容: import Vue from 'vue'; import ElementUI from 'element-ui'; import

随机推荐