JzgdbDataSourceConfig.java 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.linkwechat.coal.datasource;
  2. import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
  3. import com.baomidou.mybatisplus.annotation.DbType;
  4. import com.baomidou.mybatisplus.core.MybatisConfiguration;
  5. import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
  6. import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
  7. import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
  8. import org.apache.ibatis.logging.stdout.StdOutImpl;
  9. import org.apache.ibatis.session.SqlSessionFactory;
  10. import org.mybatis.spring.SqlSessionTemplate;
  11. import org.mybatis.spring.annotation.MapperScan;
  12. import org.springframework.beans.factory.annotation.Qualifier;
  13. import org.springframework.boot.context.properties.ConfigurationProperties;
  14. import org.springframework.context.annotation.Bean;
  15. import org.springframework.context.annotation.Configuration;
  16. import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
  17. import org.springframework.jdbc.datasource.DataSourceTransactionManager;
  18. import org.springframework.transaction.PlatformTransactionManager;
  19. import javax.sql.DataSource;
  20. /**
  21. * 从数据源配置
  22. */
  23. @Configuration
  24. @MapperScan(basePackages = {"com.linkwechat.coal.modules.jzgdb.*.mapper"}, sqlSessionFactoryRef = "jzgdbSqlSessionFactory")
  25. public class JzgdbDataSourceConfig {
  26. @Bean(name = "jzgdbDataSource")
  27. @ConfigurationProperties(prefix = "spring.datasource.jzgdb")
  28. public DataSource jzgdbDataSource() {
  29. return DruidDataSourceBuilder.create().build();
  30. }
  31. @Bean(name = "jzgdbSqlSessionFactory")
  32. public SqlSessionFactory jzgdbSqlSessionFactory(@Qualifier("jzgdbDataSource") DataSource datasource)
  33. throws Exception {
  34. MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
  35. //configuration配置bean
  36. MybatisConfiguration configuration = new MybatisConfiguration();
  37. configuration.setMapUnderscoreToCamelCase(true);
  38. configuration.setCacheEnabled(false);
  39. // 配置打印sql语句s
  40. configuration.setLogImpl(StdOutImpl.class);
  41. // 添加自定义SQL注入
  42. bean.setConfiguration(configuration);
  43. //插件对象
  44. MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
  45. //分页插件
  46. mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
  47. bean.setDataSource(datasource);
  48. // 设置mybatis的xml所在位置
  49. bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/modules/jzgdb/*/*.xml"));
  50. bean.setPlugins(mybatisPlusInterceptor);
  51. return bean.getObject();
  52. }
  53. @Bean("jzgdbSqlSessionTemplate")
  54. public SqlSessionTemplate jzgdbSqlSessionTemplate(
  55. @Qualifier("jzgdbSqlSessionFactory") SqlSessionFactory sessionFactory) {
  56. return new SqlSessionTemplate(sessionFactory);
  57. }
  58. @Bean("jzgdbTransactionManager")
  59. public PlatformTransactionManager jzgdbTransactionManager(@Qualifier("jzgdbDataSource") DataSource dataSource) {
  60. return new DataSourceTransactionManager(dataSource);
  61. }
  62. }