springboot项目配置多数据源
springboot项目配置多数据源
//关键:mybatis文件的目录需要区分开来
sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis.myProjectOne/*.xml"));
#从数据库配置,数据库的配置 以spring.datasource.myProjectOne前缀,需要配置驱动程序名称。
spring.datasource.myProjectOne.driver-class-name = com.mysql.jdbc.Driver
spring.datasource.myProjectOne.url = jdbc:mysql://IP:3306/databaseName?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&allowMultiQueries=true&useSSL=false
spring.datasource.myProjectOne.username = username
spring.datasource.myProjectOne.password = password
从数据源
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
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.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.support.TransactionTemplate; import javax.sql.DataSource; /**
* 数据源配置
*/
@Configuration
@MapperScan(basePackages = "com.my.projectOne.mapper", sqlSessionFactoryRef = "myProjectOneDBSessionFactory")
public class OneDBConfig { @Bean(name = "myProjectOneDataSource")
@ConfigurationProperties(prefix = "spring.datasource.myProjectOne")
@Primary
public DataSource fundsDataSource() {
return DataSourceBuilder.create().build();
} @Bean(name = "myProjectOneDBSessionFactory")
@Primary
public SqlSessionFactory sqlSessionFactoryBean(@Qualifier("myProjectOneDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
//关键:mybatis文件的目录需要区分开来
sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis.myProjectOne/*.xml")); //子模块中的类路径 mybatis.myProjectOne
sqlSessionFactoryBean.setDataSource(dataSource);
return sqlSessionFactoryBean.getObject();
} @Bean(name = "myProjectOneTransactionManager")
@Primary
public DataSourceTransactionManager transactionManager(@Qualifier("myProjectOneDataSource") DataSource dataSource) {
DataSourceTransactionManager transactionManager = new DataSourceTransactionManager();
transactionManager.setDataSource(dataSource);
return transactionManager;
} @Bean(name = "myProjectOneTransactionTemplate")
@Primary
public TransactionTemplate transactionTemplate(@Qualifier("myProjectOneTransactionManager") DataSourceTransactionManager transactionManager) {
TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
return transactionTemplate;
}
}
主数据库配置,数据库的配置 以spring.datasource前缀,需要配置驱动程序名称。
spring.datasource.driver-class-name = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://IP:3306/databaseName?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&allowMultiQueries=true&useSSL=false
spring.datasource.username = username
spring.datasource.password = password
主数据源
import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
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.core.io.support.PathMatchingResourcePatternResolver; import javax.sql.DataSource; /**
* 数据源配置
*/
@Configuration
@MapperScan(basePackages = "com.my.projectTwo.mapper", sqlSessionFactoryRef = "myProjectTwodbSessionFactory")
public class TwoDBConfig { @Bean(name = "myProjectTwodbDataSource")
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource myProjectTwoDataSource() {
return DataSourceBuilder.create().build();
} @Bean(name = "myProjectTwodbSessionFactory")
public SqlSessionFactory sqlSessionFactoryBean(@Qualifier("myProjectTwodbDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/*.xml"));
sqlSessionFactoryBean.setDataSource(dataSource);
sqlSessionFactoryBean.setPlugins(new Interceptor[]{new ResultDecryptSetInterceptor()});
return sqlSessionFactoryBean.getObject();
}
}
springboot项目配置多数据源的更多相关文章
- springboot项目配置logback日志系统
记录springboot项目配置logback日志文件管理: logback依赖jar包 SpringBoot项目配置logback理论上需要添加logback-classic依赖jar包: < ...
- Springboot项目 配置数据库连接属性后,启动项目报错
Springboot项目 配置数据库连接属性后,启动项目报错,错误如下: 错误原因分析: 1.连接信息配置错误 当使用properties为配置文件时,如图所示,上面的 spring.datasour ...
- SpringBoot+MyBatis配置多数据源
SpringBoot 可以支持多数据源,这是一个非常值得学习的功能,但是从现在主流的微服务的架构模式中,每个应用都具有唯一且准确的功能,多数据源的需求很难用到,考虑到实际情况远远比理论复杂的多,这里还 ...
- spring项目配置双数据源读写分离
我们最早做新项目的时候一直想做数据库的读写分离与主从同步,由于一些原因一直没有去做这个事情,这次我们需要配置双数据源的起因是因为我们做了一个新项目用了另一个数据库,需要把这个数据库的数据显示到原来的后 ...
- springboot+mybais配置多数据源(分包实现)
一.分包方式实现: 1.在application.properties中配置两个数据库: #druid连接池 #dataSoureOne(这里是我本地的数据源) spring.datasource.o ...
- Spring项目配置多数据源
项目中有用到多数据源,并进行动态切换,使用的是阿里的druid.看网上有一篇大致一样的就偷偷懒 import java.sql.SQLFeatureNotSupportedException; imp ...
- springboot项目配置类
一.在springboot项目中,如果不进行配置,直接访问静态页面是无法访问的,需要进行配置,springboot舍弃了XML文件的配置方式,这里我们采用开发配置类的方式.新建MvcConfig类,加 ...
- springboot项目 配置https
感谢 https://www.jianshu.com/p/1b7b9e0803c6 帮我解决了问题 生成自签名证书 keytool -genkey -storetype PKCS12 -keysiz ...
- springboot + mybatis配置多数据源示例
转:http://www.jb51.net/article/107223.htm 在实际开发中,我们一个项目可能会用到多个数据库,通常一个数据库对应一个数据源. 代码结构: 简要原理: 1)Datab ...
- Springboot项目配置druid数据库连接池,并监控统计功能
pom.xml配置依赖 <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> & ...
随机推荐
- 系列解读SMC-R:透明无感提升云上 TCP 应用网络性能(一)| 龙蜥技术
简介:已有的应用若想使用RDMA技术改造成本高,那么有没有一种技术是不做任何改造就可以享受RDMA带来的性能优势? 文/龙蜥社区高性能网络SIG 引言 Shared Memory Communi ...
- 饿了么EMonitor演进史
简介: 可观测性作为技术体系的核心环节之一,跟随饿了么技术的飞速发展,不断自我革新. 序言 时间回到2008年,还在上海交通大学上学的张旭豪.康嘉等人在上海创办了饿了么,从校园外卖场景出发,饿了么一步 ...
- Python数据分析 DataFrame 笔记
08,DataFrame创建 DataFrame是一个[表格型]的数据结构,可以看做是[由Series组成的字典](共用同一个索引).DataFrame由按一定顺序排列的多列数据组成.设计初衷是将Se ...
- Codeforces Round #922 (Div. 2) ABCD
A. Brick Wall 很直白的贪心,显然就是全放横着的砖最优,每行中最多能放 \(\lfloor \dfrac{m}{2} \rfloor\) 个,答案为 \(n \cdot \lfloor \ ...
- 三:瑞芯微OK3399-C开发板
场景一 给广告机加上一双智慧的眼睛,时刻关注这经过自己面前的每一个人,把他(她)们的性别.年龄.胖瘦.着装风格.经过频次.观看广告的时间.每个广告观看的人数等等一一记录下来,为广告机运营商.广告创业设 ...
- 4.10 + (double)(rand()%10)/100.0
黑色星期四 坏消息: 没有奥赛课,所以大概率调不出来 CF1479D 好消息: 5k 回来了,调题有望 中午起床直接来的机房,有学科自习就说 氟硫氢 不知道 结果被叫回去了 而且今天班里没水了,趁着大 ...
- 16、数据库加固-mysql 加固
1.修改 DBA 登录密码 shell 下执行: mysqladmin -u root password 非首次修改:mysqladmin -u root password -p原密码 在 mysql ...
- 01 go-zero入门--单体服务demo
目录 官方文档: 视频地址: 系统环境: 配置环境: 1. golang安装 2. go module配置 3. goctl安装 4.protoc,protoc-gen-go,protoc-gen-g ...
- 关于sql server导出csv格式文件的身份证号乱码问题处理办法
1.使用SQL Server数据库经常会遇到导出大量数据的情况,例如导出40万条数据,虽然EXCL支持可以放入百万的数据,但是使用数据库复制,粘贴到EXCL表格时,数据库会提示溢出的情况,如下图所示: ...
- ContextCapture-硬件配置推荐
ContextCapture倾斜摄影的空三计算.三维建模应用.非常耗费硬件资源,适当调整硬件配置,可以显著提高模型处理时间. 硬件常见问题 随着倾斜摄影建模算法成熟,应用越来越广泛,数据量越来越大,需 ...