package com.flightfeather.grid.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.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
|
|
|
/**
|
* Mybatis主数据源ds1配置
|
* 多数据源配置依赖数据源配置
|
* @see DataSourceConfig
|
*/
|
@Configuration
|
@MapperScan(basePackages = ["com.flightfeather.grid.domain.ds1.mapper"],
|
sqlSessionTemplateRef = "ds1SqlSessionTemplate")
|
class MybatisConfig4ds1 {
|
|
//主数据源 ds1数据源
|
@Primary
|
@Bean("ds1SqlSessionFactory")
|
@Throws(Exception::class)
|
fun ds1SqlSessionFactory(@Qualifier("ds1DataSource") dataSource: DataSource?): SqlSessionFactory? {
|
val sqlSessionFactory = SqlSessionFactoryBean()
|
sqlSessionFactory.setDataSource(dataSource)
|
sqlSessionFactory.setMapperLocations(*PathMatchingResourcePatternResolver().getResources("classpath*:mapper/ds1/*.xml"))
|
return sqlSessionFactory.getObject()
|
}
|
|
@Primary
|
@Bean(name = ["ds1TransactionManager"])
|
fun ds1TransactionManager(@Qualifier("ds1DataSource") dataSource: DataSource): DataSourceTransactionManager? {
|
return DataSourceTransactionManager(dataSource)
|
}
|
|
@Primary
|
@Bean(name = ["ds1SqlSessionTemplate"])
|
fun ds1SqlSessionTemplate(@Qualifier("ds1SqlSessionFactory") sqlSessionFactory: SqlSessionFactory?): SqlSessionTemplate? {
|
return SqlSessionTemplate(sqlSessionFactory)
|
}
|
}
|