feiyu02
2023-10-20 3371ed856d8712732b3f46e30e41e652ff5d7781
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package com.flightfeather.monitor.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.monitor.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)
    }
}