springboot-配置多个数据源
1、创建一个datasource包,新建DataSource1,DataSource2两个文件,通过注解来配置数据源
DataSource1:
- package com.springboot.datasource;
- import org.apache.ibatis.session.SqlSessionFactory;
- import org.mybatis.spring.SqlSessionFactoryBean;
- import org.mybatis.spring.SqlSessionTemplate;
- import org.mybatis.spring.annotation.MapperScan;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.Primary;
- import org.springframework.jdbc.datasource.DataSourceTransactionManager;
- import javax.sql.DataSource;
- @Configuration//注解到spring容器中
- @MapperScan(basePackages = "com.springboot.data1.mapper",sqlSessionFactoryRef = "data1SqlSessionFactory")
- public class DataSource1 {
- /**
- * 返回data1数据库的数据源
- * @return
- */
- @Bean(name="data1Source")
- @Primary//主数据源
- @ConfigurationProperties(prefix = "spring.datasource.data1")
- public DataSource dataSource(){
- return DataSourceBuilder.create().build();
- }
- /**
- * 返回data1数据库的会话工厂
- * @param ds
- * @return
- * @throws Exception
- */
- @Bean(name = "data1SqlSessionFactory")
- @Primary
- public SqlSessionFactory sqlSessionFactory(@Qualifier("data1Source") DataSource ds) throws Exception{
- SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
- bean.setDataSource(ds);
- return bean.getObject();
- }
- /**
- * 返回data1数据库的会话模板
- * @param sessionFactory
- * @return
- * @throws Exception
- */
- @Bean(name = "data1SqlSessionTemplate")
- @Primary
- public SqlSessionTemplate sqlSessionTemplate(@Qualifier("data1SqlSessionFactory") SqlSessionFactory sessionFactory) throws Exception{
- return new SqlSessionTemplate(sessionFactory);
- }
- /**
- * 返回data1数据库的事务
- * @param ds
- * @return
- */
- @Bean(name = "data1TransactionManager")
- @Primary
- public DataSourceTransactionManager transactionManager(@Qualifier("data1Source") DataSource ds){
- return new DataSourceTransactionManager(ds);
- }
- }
DataSource2:
- package com.springboot.datasource;
- import org.apache.ibatis.session.SqlSessionFactory;
- import org.mybatis.spring.SqlSessionFactoryBean;
- import org.mybatis.spring.SqlSessionTemplate;
- import org.mybatis.spring.annotation.MapperScan;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.jdbc.datasource.DataSourceTransactionManager;
- import javax.sql.DataSource;
- @Configuration//注解到spring容器中
- @MapperScan(basePackages = "com.springboot.data2.mapper",sqlSessionFactoryRef = "data2SqlSessionFactory")
- public class DataSource2 {
- /**
- * 返回data2数据库的数据源
- * @return
- */
- @Bean(name="data2Source")
- @ConfigurationProperties(prefix = "spring.datasource.data2")
- public DataSource dataSource(){
- return DataSourceBuilder.create().build();
- }
- /**
- * 返回data2数据库的会话工厂
- * @param ds
- * @return
- * @throws Exception
- */
- @Bean(name = "data2SqlSessionFactory")
- public SqlSessionFactory sqlSessionFactory(@Qualifier("data2Source") DataSource ds) throws Exception{
- SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
- bean.setDataSource(ds);
- return bean.getObject();
- }
- /**
- * 返回data2数据库的会话模板
- * @param sessionFactory
- * @return
- * @throws Exception
- */
- @Bean(name = "data2SqlSessionTemplate")
- public SqlSessionTemplate sqlSessionTemplate(@Qualifier("data2SqlSessionFactory") SqlSessionFactory sessionFactory) throws Exception{
- return new SqlSessionTemplate(sessionFactory);
- }
- /**
- * 返回data2数据库的事务
- * @param ds
- * @return
- */
- @Bean(name = "data2TransactionManager")
- public DataSourceTransactionManager transactionManager(@Qualifier("data2Source") DataSource ds){
- return new DataSourceTransactionManager(ds);
- }
- }
2、在application.properties文件配置两个数据源
- spring.datasource.data1.url=jdbc:mysql://127.0.0.1:3306/mysql-boot
- spring.datasource.data1.username=root
- spring.datasource.data1.password=123123
- spring.datasource.data1.driver-class-name=com.mysql.jdbc.Driver
- spring.datasource.data2.url=jdbc:mysql://127.0.0.1:3306/mysql-confswh
- spring.datasource.data2.username=root
- spring.datasource.data2.password=123123
- spring.datasource.data2.driver-class-name=com.mysql.jdbc.Driver
3、两个测试的Service&Mapper
4、Controller调用
- @RequestMapping("getTopicList")
- public List<Map<String,Object>> getTopicList(){
- List<Map<String,Object>> list1 = userServiceData1.getTopicListData1();
- List<Map<String,Object>> list2 = userServiceData2.getTopicListData2();
- return list1;
- }
springboot-配置多个数据源的更多相关文章
- 037.[转] springboot 配置多个数据源
1.在application.properties文件 配置两个数据源 #默认使用 tomcat-jdbc spring.datasource.type=org.apache.tomcat.jdbc. ...
- springboot 配置quart多数据源
Springboot版本为2.1.6 多数据源配置使用druid进行配置,数据库使用的为Oracle11g,如果使用的是MySQL,直接将数据库的地址和驱动改一下即可 <parent> & ...
- 使用springboot配置和注入数据源属性的方法和步骤
/** 1.书写一个名为resources/application.properties的属性文件---->书写一个配置属性类,类名为: **/ 文件:application.propertie ...
- Springboot配置连接两个数据库
背景: 项目中需要从两个不同的数据库查询数据,之前实现方法是:springboot配置连接一个数据源,另一个使用jdbc代码连接. 为了改进,现在使用SpringBoot配置连接两个数据源 实现效果: ...
- springboot配置Druid数据源
springboot配置druid数据源 Author:SimpleWu springboot整合篇 前言 对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringDa ...
- SpringBoot入门之基于Druid配置Mybatis多数据源
上一篇了解了Druid进行配置连接池的监控和慢sql处理,这篇了解下使用基于基于Druid配置Mybatis多数据源.SpringBoot默认配置数据库连接信息时只需设置url等属性信息就可以了,Sp ...
- SpringBoot配置多数据源时遇到的问题
SpringBoot配置多数据源 参考代码:Spring Boot 1.5.8.RELEASE同时配置Oracle和MySQL 原作者用的是1.5.8版本的SpringBoot,在升级到2.0.*之后 ...
- springboot配置多数据源(JdbcTemplate方式)
在实际开发中可能会遇到需要配置多个数据源的情况,比如:需要使用多个host.需要使用多种数据库(MySql.Oracle.SqlServer…) 如果使用springboot开发,可做如下配置: Co ...
- 接管SpringBoot对Activiti的数据源自动配置
SpringBoot的自动配置真的让人又爱又恨,但还是爱更多一点. SpringBoot想要帮我们自动配置好一切,但是有时候配置的却并不是我们需要的,甚至有时候会默默的坑我们. 我的项目是一个多数据源 ...
- SpringBoot整合Mybatis,多数据源,事务,支持java -jar 启动.
用了一段时间SpringBoot,之前配置MYBATIS ,在打包WAR 放到tomcat下正常,但是WAR已经过时了,现在流行直接打包JAR 丢到DOCKER 里,无奈JAR 启动的时候MAPPER ...
随机推荐
- Git错误:error:failed to push some refs to 'git@gitee.com:name/project.git'
大家在通过本地仓库上传文件到远程仓库时,会报出 error:failed to push some refs to 'git@gitee.com:name/project.git' 的错误. 解决方法 ...
- CSS 让div,span等块级、非快级元素排列在同一行
让div,span等块级.非快级元素排列在同一行 by:授客 QQ:1033553122 例子:让两个div排列在同一行 给div添加float样式 <!DOCTYPE html> < ...
- fluwx使用的问题
今天搞了下fluwx这个库,也是遇到了很多问题. 问题一:‘包名不对,请检查包名是否与开放平台上填写的一致’ 显示把文档这些看了遍,但是也不是很清楚,还加了下群问别人,主要我没有开发过Android, ...
- 剑指offer 28:字符串的排列
题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描述 输入 ...
- html 初识 文档结构 常用标签
HTML初识 △HTML: 超文本标记语言,是一种用于创建网页的标记语言,不是编程语言,没有逻辑 本质上是浏览器可识别的规则 我们按照规则写网页,浏览器根据规则渲染我们的网页.对于不同的浏览器,对同一 ...
- ssh免密登录配置后,登陆失败问题
本文转自博主:_Lance 本文转自:https://blog.csdn.net/qq_19648191/article/details/54845440 相关资料http://blog.csdn.n ...
- Internet Download Manager是什么?
在互联网下载管理器(也被称为IDM)是一款共享软件下载管理器,这意味着你可以下载该程序,并尝试它的试用期内免费. 以下是IDM最佳功能的列表: 支持多种浏览器和应用程序 一键下载文件 内置防病毒检查 ...
- LG5202 「USACO2019JAN」Redistricting 动态规划+堆/单调队列优化
问题描述 LG5202 题解 \[opt[i]=xx+(cnt[i]-cnt[yy]<=0)\] 发现\(cnt[i]-cnt[yy] <= 0\)只能有两种取值 于是直接堆优化即可 \( ...
- Win32 程序开发:创建一个应用程序窗口
一.创建一个应用程序窗口 代码如下: // 头文件 #include <windows.h> // 全局变量 WCHAR g_lpszClassName[] = L"CLASSN ...
- 【AtCoder】AtCoder Grand Contest 039 解题报告
点此进入比赛 \(A\):Connection and Disconnection(点此看题面) 大致题意: 给你一个字符串,将它重复\(k\)次.进行尽量少的操作,每次修改一个位置上的字符,使得不存 ...