Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.springboot.demo.configuration;
- import com.alibaba.druid.pool.DruidDataSource;
- 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.beans.factory.annotation.Value;
- 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;
- @Configuration
- @MapperScan(basePackages = "com.springboot.demo.dao.master", sqlSessionTemplateRef = "masterSqlSessionTemplate")
- public class MasterDataSourceConfiguration {
- @Value("${spring.datasource.master.driver-class-name}")
- private String driverClassName;
- @Value("${spring.datasource.master.url}")
- private String url;
- @Value("${spring.datasource.master.username}")
- private String username;
- @Value("${spring.datasource.master.password}")
- private String password;
- @Primary
- @Bean(name = "masterDataSource")
- public DataSource dataSource() {
- DruidDataSource dataSource = new DruidDataSource();
- dataSource.setDriverClassName(this.driverClassName);
- dataSource.setUrl(this.url);
- dataSource.setUsername(this.username);
- dataSource.setPassword(this.password);
- return dataSource;
- }
- @Primary
- @Bean(name = "masterSqlSessionFactory")
- public SqlSessionFactory sqlSessionFactory(@Qualifier("masterDataSource") DataSource dataSource) throws Exception {
- SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
- bean.setDataSource(dataSource);
- bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/master/*.xml"));
- bean.setConfigLocation(new PathMatchingResourcePatternResolver().getResource("classpath:config/MyBatisConfig.xml"));
- return bean.getObject();
- }
- @Primary
- @Bean(name = "masterTransactionManager")
- public DataSourceTransactionManager transactionManager(@Qualifier("masterDataSource") DataSource dataSource) {
- return new DataSourceTransactionManager(dataSource);
- }
- @Primary
- @Bean(name = "masterSqlSessionTemplate")
- public SqlSessionTemplate sqlSessionTemplate(@Qualifier("masterSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
- return new SqlSessionTemplate(sqlSessionFactory);
- }
- }
Add Comment
Please, Sign In to add comment