package cn.flightfeather.supervision.datasource.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.core.io.support.PathMatchingResourcePatternResolver
|
import org.springframework.jdbc.datasource.DataSourceTransactionManager
|
import javax.sql.DataSource
|
|
|
/**
|
* Mybatis 第三个ds3数据源配置
|
* 多数据源配置依赖数据源配置
|
* @see DataSourceConfig
|
*/
|
@Configuration
|
@MapperScan(basePackages = ["cn.flightfeather.supervision.domain.ds3.mapper"],
|
sqlSessionTemplateRef = "ds3SqlSessionTemplate")
|
class MybatisConfig4ds3 {
|
|
//ds3数据源
|
@Bean("ds3SqlSessionFactory")
|
@Throws(Exception::class)
|
fun ds3SqlSessionFactory(@Qualifier("ds3DataSource") dataSource: DataSource?): SqlSessionFactory? {
|
val sqlSessionFactory = SqlSessionFactoryBean()
|
sqlSessionFactory.setDataSource(dataSource)
|
sqlSessionFactory.setMapperLocations(*PathMatchingResourcePatternResolver()
|
.getResources("classpath*:mapper/ds3/*.xml"))
|
return sqlSessionFactory.getObject()
|
}
|
|
//事务支持
|
@Bean(name = ["ds3TransactionManager"])
|
fun ds3TransactionManager(@Qualifier("ds3DataSource") dataSource: DataSource): DataSourceTransactionManager? {
|
return DataSourceTransactionManager(dataSource)
|
}
|
|
@Bean(name = ["ds3SqlSessionTemplate"])
|
fun ds3SqlSessionTemplate(@Qualifier("ds3SqlSessionFactory") sqlSessionFactory: SqlSessionFactory?):
|
SqlSessionTemplate? {
|
return SqlSessionTemplate(sqlSessionFactory)
|
}
|
}
|