| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package com.linkwechat.coal.datasource;
- import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
- import com.baomidou.mybatisplus.annotation.DbType;
- import com.baomidou.mybatisplus.core.MybatisConfiguration;
- import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
- import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
- import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
- import org.apache.ibatis.logging.stdout.StdOutImpl;
- import org.apache.ibatis.session.SqlSessionFactory;
- import org.mybatis.spring.SqlSessionTemplate;
- import org.mybatis.spring.annotation.MapperScan;
- import org.springframework.beans.factory.annotation.Qualifier;
- 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 org.springframework.transaction.PlatformTransactionManager;
- import javax.sql.DataSource;
- /**
- * 从数据源配置
- */
- @Configuration
- @MapperScan(basePackages = {"com.linkwechat.coal.modules.jzgdb.*.mapper"}, sqlSessionFactoryRef = "jzgdbSqlSessionFactory")
- public class JzgdbDataSourceConfig {
- @Bean(name = "jzgdbDataSource")
- @ConfigurationProperties(prefix = "spring.datasource.jzgdb")
- public DataSource jzgdbDataSource() {
- return DruidDataSourceBuilder.create().build();
- }
- @Bean(name = "jzgdbSqlSessionFactory")
- public SqlSessionFactory jzgdbSqlSessionFactory(@Qualifier("jzgdbDataSource") DataSource datasource)
- throws Exception {
- MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
- //configuration配置bean
- MybatisConfiguration configuration = new MybatisConfiguration();
- configuration.setMapUnderscoreToCamelCase(true);
- configuration.setCacheEnabled(false);
- // 配置打印sql语句s
- configuration.setLogImpl(StdOutImpl.class);
- // 添加自定义SQL注入
- bean.setConfiguration(configuration);
- //插件对象
- MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
- //分页插件
- mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
- bean.setDataSource(datasource);
- // 设置mybatis的xml所在位置
- bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/modules/jzgdb/*/*.xml"));
- bean.setPlugins(mybatisPlusInterceptor);
- return bean.getObject();
- }
- @Bean("jzgdbSqlSessionTemplate")
- public SqlSessionTemplate jzgdbSqlSessionTemplate(
- @Qualifier("jzgdbSqlSessionFactory") SqlSessionFactory sessionFactory) {
- return new SqlSessionTemplate(sessionFactory);
- }
- @Bean("jzgdbTransactionManager")
- public PlatformTransactionManager jzgdbTransactionManager(@Qualifier("jzgdbDataSource") DataSource dataSource) {
- return new DataSourceTransactionManager(dataSource);
- }
- }
|