#数据源 admin
spring.datasource.jdbc-url =
spring.datasource.username =
spring.datasource.password =
spring.datasource.hikari.minimum-idle = 5
spring.datasource.hikari.maximum-pool-size = 50
spring.datasource.hikari.driver-class-name = com.mysql.jdbc.Driver
#数据源 search
search.datasource.jdbc-url =
search.datasource.username =
search.datasource.password =
search.datasource.hikari.minimum-idle = 5
search.datasource.hikari.maximum-pool-size = 50
search.datasource.hikari.driver-class-name = com.mysql.jdbc.Driver
mybatis.mapper-locations = classpath*:mapper/*.xml
mybatis.type-aliases-package = com.xxx.xxx.model
每个数据源对应的配置文件
1、admin
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.beans.factory.annotation.Value;
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 org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource;
@Configuration
@MapperScan(basePackages = {"com.xxx.xxx.admin.mapper.admin"}, sqlSessionTemplateRef = "sqlSessionTemplate")
public class AdminDataSourceConfig {
/**
* xml配置路径
*/
@Value("${mybatis.mapper-locations}")
private String mapperLocations;
/**
* model路径
*/
@Value("${mybatis.type-aliases-package}")
private String typeAliasesPackage;
/**
* 获取admin数据源
* @return DataSource
*/
@Bean(name = "dataSource")
@ConfigurationProperties(prefix = "spring.datasource")
@Primary
public DataSource getDataSource() {
return DataSourceBuilder.create().build();
}
/**
* 获取admin数据源的sqlSessionFactory
* @param dataSource
* @return
* @throws Exception
*/
@Bean(name = "sqlSessionFactory")
@Primary
public SqlSessionFactory getSqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception {
//创建SqlSessionFactoryBean
SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();
//设置DataSource
sqlSessionFactory.setDataSource(dataSource);
//添加xml路径
sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapperLocations));
//添加model路径
sqlSessionFactory.setTypeAliasesPackage(typeAliasesPackage);
return sqlSessionFactory.getObject();
}
/**
* admin数据源事务管理器
* @param dataSource
* @return
*/
@Bean(name = "transactionManager")
@Primary
public DataSourceTransactionManager getDataSourceTransactionManager(@Qualifier("dataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
/**
* admin 数据源 sqlSessionTemplate
* @param sqlSessionFactory
* @return
*/
@Bean(name = "sqlSessionTemplate")
@Primary
public SqlSessionTemplate getSqlSessionTemplate(@Qualifier("sqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
2、search
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.beans.factory.annotation.Value;
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 org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource;
/**
* Created with IntelliJ IDEA.
*
* @author: liuqi
* @date: 2019/7/18
* @time: 11:23
* @description: admin数据源配置文件
*/
@Configuration
@MapperScan(basePackages = {"com.jiutong.logistics.admin.mapper.search"}, sqlSessionTemplateRef = "searchSqlSessionTemplate")
public class SearchDataSourceConfig {
/**
* xml配置路径
*/
@Value("${mybatis.mapper-locations}")
private String mapperLocations;
/**
* model路径
*/
@Value("${mybatis.type-aliases-package}")
private String typeAliasesPackage;
/**
* 获取search数据源
* @return DataSource
*/
@Bean(name = "searchDataSource")
@ConfigurationProperties(prefix = "search.datasource")
public DataSource getDataSource() {
return DataSourceBuilder.create().build();
}
/**
* 获取search数据源的sqlSessionFactory
* @param dataSource
* @return
* @throws Exception
*/
@Bean(name = "searchSqlSessionFactory")
public SqlSessionFactory getSqlSessionFactory(@Qualifier("searchDataSource") DataSource dataSource) throws Exception {
//创建SqlSessionFactoryBean
SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();
//设置DataSource
sqlSessionFactory.setDataSource(dataSource);
//添加xml路径
sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapperLocations));
//添加model路径
sqlSessionFactory.setTypeAliasesPackage(typeAliasesPackage);
return sqlSessionFactory.getObject();
}
/**
* search数据源事务管理器
* @param dataSource
* @return
*/
@Bean(name = "searchTransactionManager")
public DataSourceTransactionManager getDataSourceTransactionManager(@Qualifier("searchDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
/**
* search 数据源 sqlSessionTemplate
* @param sqlSessionFactory
* @return
*/
@Bean(name = "searchSqlSessionTemplate")
public SqlSessionTemplate getSqlSessionTemplate(@Qualifier("searchSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
mapper文件分开写