package com.stone.conf.datasource.intermediate; 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.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.intermediate", sqlSessionFactoryRef = "SessionTemplateIntermediate") public class DruidIntermediate { @Bean @ConfigurationProperties(prefix = "spring.datasource.intermediate") public DataSourceProperties DataSourcePropertiesIntermediate(){ return new DataSourceProperties(); } @Bean @ConfigurationProperties(prefix = "spring.datasource.intermediate") public DataSource DataSourceIntermediates() { return DataSourcePropertiesIntermediate().initializeDataSourceBuilder().build(); // return DataSourceBuilder.create().build(); } @Bean public DataSourceTransactionManager TransactionManagerIntermediate() { DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager(); dataSourceTransactionManager.setDataSource(DataSourceIntermediates()); return dataSourceTransactionManager; } @Bean(name = "SessionTemplateIntermediate") public SqlSessionFactory SqlSessionFactoryIntermediate() throws Exception { SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(DataSourceIntermediates()); sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources( "classpath*:mapper/intermediate/*.xml")); return sessionFactory.getObject(); } }