You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
2.1 KiB
Java
50 lines
2.1 KiB
Java
2 years ago
|
package com.glxp.api.config;
|
||
|
|
||
|
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
|
||
|
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.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
|
||
|
// 扫描 Mapper 接口并容器管理
|
||
|
@MapperScan(basePackages = MasterDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "masterSqlSessionFactory")
|
||
|
public class MasterDataSourceConfig {
|
||
|
|
||
|
static final String PACKAGE = "com.glxp.api.dao";
|
||
|
static final String MAPPER_LOCATION = "classpath:mybatis/mapper/*/*.xml";
|
||
|
|
||
|
@Bean(name = "masterDataSource")
|
||
|
@ConfigurationProperties(prefix = "spring.datasource")
|
||
|
@Primary
|
||
|
public DataSource masterDataSource() {
|
||
|
return DataSourceBuilder.create().build();
|
||
|
}
|
||
|
|
||
|
@Bean(name = "masterTransactionManager")
|
||
|
@Primary
|
||
|
public DataSourceTransactionManager masterTransactionManager() {
|
||
|
return new DataSourceTransactionManager(masterDataSource());
|
||
|
}
|
||
|
|
||
|
@Bean(name = "masterSqlSessionFactory")
|
||
|
@Primary
|
||
|
public SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource masterDataSource)
|
||
|
throws Exception {
|
||
|
final MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean();
|
||
|
sessionFactory.setDataSource(masterDataSource);
|
||
|
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
|
||
|
.getResources(MasterDataSourceConfig.MAPPER_LOCATION));
|
||
|
return sessionFactory.getObject();
|
||
|
}
|
||
|
}
|