package com.stone.conf.datasource.senior; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; import org.springframework.boot.context.properties.ConfigurationProperties; 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 tk.mybatis.spring.annotation.MapperScan; import javax.sql.DataSource; /** * @author zichen */ @Configuration @MapperScan(basePackages = "com.stone.mapper.senior", sqlSessionFactoryRef = "SessionTemplateSenior") public class DruidSenior { @Bean @Primary @ConfigurationProperties(prefix = "spring.datasource.senior") public DataSourceProperties DataSourcePropertiesSenior(){ return new DataSourceProperties(); } @Bean @Primary @ConfigurationProperties(prefix = "spring.datasource.senior") public DataSource DataSourceSeniors() { return DataSourcePropertiesSenior().initializeDataSourceBuilder().build(); // return DataSourceBuilder.create().build(); } @Bean @Primary public DataSourceTransactionManager TransactionManagerSenior() { DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager(); dataSourceTransactionManager.setDataSource(DataSourceSeniors()); return dataSourceTransactionManager; } @Bean(name = "SessionTemplateSenior") @Primary public SqlSessionFactory SqlSessionFactorySenior() throws Exception { SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(DataSourceSeniors()); sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources( "classpath*:mapper/senior/*.xml")); return sessionFactory.getObject(); } }