java一个项目多个数据源_java – 如何使用多个数据源创建Spring Boot项目?
我正在开发一个Spring Boot / Spring Batch项目,我需要配置两个数据源.一个是用于跟踪事务的内存中hsqldb数据库.另一个是常规MySQL数据库,将由我的ItemWriters更新.
问题是,一旦我尝试配置第二个数据源,Spring就会开始抛出“无法解决的循环依赖”错误,即
Error creating bean with name 'preprodDataSource' defined in class path
resource [xxx/tools/batch/xxx/MyConfiguration.class]: Initialization of
bean failed; nested exception is
org.springframework.beans.factory.BeanCurrentlyInCreationException: Error
creating bean with name 'dataSourceAutoConfigurationInitializer': Requested bean is
currently in creation: Is there an unresolvable circular reference?
我的MyConfiguration.java文件的相关块看起来像:
@Bean
public DataSource transactionsDataSource() {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("org.hsqldb.jdbcDriver");
dataSource.setUrl("jdbc:hsqldb:mem:testdb;sql.enforce_strict_size=true;hsqldb.tx=mvcc");
dataSource.setUsername("sa");
dataSource.setPassword("");
return dataSource;
}
@Bean
public DataSource preprodDataSource() {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/somedb");
dataSource.setUsername("someuser");
dataSource.setPassword("somepass");
return dataSource;
}
如果我注释掉定义第二个数据源的@Bean,一切都很好.应用程序启动并运行没有问题.但是,如果我留下它,我会得到上面的错误.
我对此的天真解释是,Spring正在构建一个’dataSourceAutoConfigurationInitializer’实例来处理第一个数据源的初始化,当它试图构造第二个数据源来处理第二个数据源时,会发生不好的事情.
有什么方法可以解决这个问题吗?
解决方法:
默认情况下,Spring Boot的自动配置将尝试使用应用程序的DataSource为您创建JdbcTemplate.正如您配置了两个,它不知道使用哪一个.告诉它应该使用哪一个你应该mark one of them as @Primary:
@Bean
@Primary
public DataSource transactionsDataSource() {
BasicDataSource dataSource = new BasicDataSource();
…
return dataSource;
}
标签:java,spring,spring-boot-2,datasource,circular-reference
来源: https://codeday.me/bug/20190703/1363881.html
相关信息
- 如何做好一个开源项目(一)
- Jenkins 如何构建一个项目
- spring boot:使用多个redis数据源(spring boot 2.3.1)
- spring boot:使mybatis访问多个druid数据源(spring boot 2.3.2)
- 三、Spring Boot 多数据源配置
- 如何将多个Eclipse项目导入IntelliJ IDEA
- maven 一次打包多个maven项目
- Spring3.0配置多个事务管理器(即操作多个数据源)的方法
- (web)个人项目(挖宝网)
- 15 个优秀开源的 Spring Boot 学习项目
- 如何熟悉一个开源项目?[转]
- 使用node 创建一个新项目
- 项目数据
- 25.怎样创建一个Swift项目?
- 使用pycharm创建自己的第一个django项目
- SpringMVC+Mybatis 如何配置多个数据源并切换?
- spring的jdbcTemplate的多数据源的配置,springboot的jdbcTemplate的多数据源的配置
- spring mybatis 多个数据源配置
- 【Java】maven多项目资源共享
- 以房租分析为例:如何从头创建数据科学项目
- 创建一个swift项目
- 基于xml的Spring多数据源配置和使用
- spring多个数据源配置
- spring boot:用dynamic-datasource-spring-boot-starter配置druid多数据源(spring boot 2.3.3)
- 四、Spring Boot 多数据源 自动切换
- 基于注解的Spring多数据源配置和使用
- 个人项目框架搭建 -- 仓储模式使用
- spring多数据源配置
- MySQL多数据源笔记2-Spring多数据源一主多从读写分离(手写)
- 开源项目 —— 中国行政区划数据
- 从一个数组中随机产生多个不重复数据的方法
- 创建gitlab的第一个项目
- Spring+Hibernate+SpringMVC+MySql实现配置多个数据源!
- 如何在VS2008中自定义多项目模板
- spring 配置多数据源 springmvc/springboot
- spring-boot 学习笔记二:创建spring-boot项目的几种方式
- spring boot:使用mybatis访问多个mysql数据源/查看Hikari连接池的统计信息(spring boot 2.3.1)
- 如何编写一个python项目
- 个人项目框架搭建 -- Autofac简单使用记录
- 多个idea项目使用同一个tomcat
- springmvc+mybatis多数据源配置,AOP注解动态切换数据源
- 一个tomcat上部署多个项目,并通过不同端口号访问不同的项目
- springboot之jpa多数据源
- 创建mavenweb项目
- 成功运作一个开源项目的 15 个要点
- webstrom打开多个项目,webstrom常用快捷键
- 如何使用seajs+jQuery构建中型项目
- Asp.Net Core_我的第一个开源项目
- Spring Boot之JdbcTemplate多数据源配置与使用
- 使用pycharm创建自己的第一个django项目
热门资讯
推荐资讯
最新资讯
- 每个程序员必学的10个Git命令
- [nginx] - 使用nginx实现反向代理,动静分离,负载均衡,session共享
- 【小白学算法】10.递归的调用机制、使用时要注意的规则
- nginx反向代理之缓存,负载均衡,动静分离的配置详解
- Android连载24-本地广播和强制下线功能
- Android开机广播和关机广播
- android仿iphone的地区选择
- 入坑 Android Gradle 插件开发(一)
- Android——实现【搜索框】与点击搜索事件监听 —— SearchView
- oracle 10g r2 安装clusterware ocr 指定/dev/raw/raw1 报错
- Android资源文件assets和raw的比较
- android 读取 raw 中的文件。
- Android 读取res文件中raw的json文件
- 线性回归算法之鸢尾花特征分类【机器学习】
- 机器学习 | 鸢尾花分类项目实战
- 路由/三层交换机DHCP下发地址详解【华为eNSP】
- tensorflow--鸢尾花分类
- 生产者-消费者问题详细分析【操作系统原理】
- 机器学习之Python使用KNN算法进行电影类型预测,对鸢尾花进行分类
- 支持向量机算法之鸢尾花特征分类【机器学习】
评论