在业务中如果一个项目要连接多个数据库查
#配置多个数据源
spring.datasource.auth.jdbc-url=jdbc:mysql://rm-..rds.aliyuncs.com:3306/test1?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
spring.datasource.secret.username=
spring.datasource.secret.password=
spring.datasource.auth.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.auth.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.secret.jdbc-url=jdbc:mysql://rm-.rds.aliyuncs.com:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
spring.datasource.secret.username=
spring.datasource.secret.password=
spring.datasource.secret.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.secret.type=com.alibaba.druid.pool.DruidDataSource
#第一个数据源
/**
* createUser:JAVA_TOM
* FileName: AuthDataSourceConfig
* Author: 14562
* Date: 2019/9/17 10:45
* Description: 第一个数据库
*/
package com.shuhe360.auth.shuhe_secret.config;
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.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
@Configuration
//配置你的mapper包路径,意味着此路径下将使用此数据源 sqlSessionFactoryRef 请保证此名字唯一信
@MapperScan(basePackages = "com.shuhe360.auth.shuhe_secret.mapper.auth"
,sqlSessionFactoryRef = "authSqlSessionFactory"
)
public class AuthDataSourceConfig {
@Bean(name="authDataSource")
//你的配置文件中的前缀
@ConfigurationProperties(prefix = "spring.datasource.auth")
public DataSource authDataSource() {
return DataSourceBuilder.create().build();
}
//与上方sqlSessionFactoryRef名字相同
@Bean(name = "authSqlSessionFactory")
public SqlSessionFactory authSqlSessionFactory(@Qualifier("authDataSource") DataSource datasource)
throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(datasource);
bean.setMapperLocations(
//配置mapper的路径
new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/auth/*.xml"));
return bean.getObject();
}
@Bean("authSqlSessionTemplate")
public SqlSessionTemplate authSqlSessionTemplate(
@Qualifier("authSqlSessionFactory") SqlSessionFactory sessionfactory) {
return new SqlSessionTemplate(sessionfactory);
}
}
#第二个数据源
/**
* createUser:JAVA_TOM
* FileName: SecretDataSourceConfig
* Author: 14562
* Date: 2019/9/17 10:46
* Description: 第二个数据库
*/
package com.shuhe360.auth.shuhe_secret.config;
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.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
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 javax.sql.DataSource;
@Configuration
@MapperScan(basePackages = "com.shuhe360.auth.shuhe_secret.mapper.secret"
,sqlSessionFactoryRef = "secretSqlSessionFactory"
)
public class SecretDataSourceConfig {
//Primary 表示默认数据源
@Bean(name="secretDataSource")
@ConfigurationProperties(prefix = "spring.datasource.secret")
@Primary
public DataSource secretDataSource() {
return DataSourceBuilder.create().build();
}
//Primary 表示默认数据源
@Bean(name = "secretSqlSessionFactory")
@Primary
public SqlSessionFactory secretSqlSessionFactory(@Qualifier("secretDataSource") DataSource datasource)
throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(datasource);
bean.setMapperLocations(
new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/secret/*.xml"));
return bean.getObject();
}
//Primary 表示默认数据源
@Bean("secretSqlSessionTemplate")
@Primary
public SqlSessionTemplate secretSqlSessionTemplate(
@Qualifier("secretSqlSessionFactory") SqlSessionFactory sessionfactory) {
return new SqlSessionTemplate(sessionfactory);
}
}
.jpg)
spingBoot配置多个数据源之分包方案
最新推荐文章于 2022-08-05 16:32:07 发布
本文详细介绍如何在Spring Boot项目中配置和使用多个数据源,包括数据源的创建、属性配置、MyBatis集成及Mapper扫描,适用于复杂业务场景下的数据库操作。
7310

被折叠的 条评论
为什么被折叠?



