在業務中如果一個項目要連接多個數據庫查 #配置多個數據源 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); } } ![Image text](E:\working space\notes\SpringBoot\1568897483(1).jpg)
spingBoot配置多個數據源之分包方案
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.