MasterDataSourceConfig.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package com.xintong.system.druidTools;
  2. import com.alibaba.druid.pool.DruidDataSource;
  3. import com.github.pagehelper.PageHelper;
  4. import org.apache.ibatis.plugin.Interceptor;
  5. import org.apache.ibatis.session.SqlSessionFactory;
  6. import org.mybatis.spring.SqlSessionFactoryBean;
  7. import org.mybatis.spring.annotation.MapperScan;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.beans.factory.annotation.Qualifier;
  10. import org.springframework.beans.factory.annotation.Value;
  11. import org.springframework.context.annotation.Bean;
  12. import org.springframework.context.annotation.Configuration;
  13. import org.springframework.context.annotation.Primary;
  14. import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
  15. import org.springframework.jdbc.datasource.DataSourceTransactionManager;
  16. import javax.sql.DataSource;
  17. /**
  18. * 文件名:MasterDataSourceConfig
  19. * 版本信息:日期:2017/4/21 Copyright 江苏省交通规划设计院 Corporation 2017 版权所有.
  20. */
  21. @Configuration
  22. // 扫描 Mapper 接口并容器管理
  23. @MapperScan(basePackages = MasterDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "masterSqlSessionFactory")
  24. public class MasterDataSourceConfig {
  25. // 精确到 master 目录,以便跟其他数据源隔离
  26. static final String PACKAGE = "com.xintong.visualinspection.dao.master";
  27. // static final String MAPPER_LOCATION = "classpath:mapper/master/*.xml";
  28. @Value("${master.mapper-locations}")
  29. private String MAPPER_LOCATION;
  30. @Value("${master.datasource.url}")
  31. private String url;
  32. @Value("${master.datasource.username}")
  33. private String user;
  34. @Value("${master.datasource.password}")
  35. private String password;
  36. @Value("${master.datasource.driver-class-name}")
  37. private String driverClass;
  38. @Autowired
  39. private PageHelper pageHelper;
  40. @Bean(name = "masterDataSource")
  41. @Primary
  42. public DataSource masterDataSource() {
  43. DruidDataSource dataSource = new DruidDataSource();
  44. dataSource.setDriverClassName(driverClass);
  45. dataSource.setUrl(url);
  46. dataSource.setUsername(user);
  47. dataSource.setPassword(password);
  48. return dataSource;
  49. }
  50. @Bean(name = "masterTransactionManager")
  51. @Primary
  52. public DataSourceTransactionManager masterTransactionManager() {
  53. return new DataSourceTransactionManager(masterDataSource());
  54. }
  55. @Bean(name = "masterSqlSessionFactory")
  56. @Primary
  57. public SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource masterDataSource)
  58. throws Exception {
  59. final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
  60. sessionFactory.setDataSource(masterDataSource);
  61. Interceptor[] plugins = new Interceptor[]{pageHelper};
  62. sessionFactory.setPlugins(plugins);
  63. sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
  64. .getResources(MAPPER_LOCATION));
  65. return sessionFactory.getObject();
  66. }
  67. }