yml 文件

  1. spring:
  2. datasource:
  3. druid:
  4. wb-db:
  5. db-type: com.alibaba.druid.pool.DruidDataSource
  6. driverClassName: com.mysql.cj.jdbc.Driver
  7. initial-size: 5
  8. max-active: 20
  9. max-pool-prepared-statement-per-connection-size: 20
  10. max-wait: 60000
  11. min-evictable-idle-time-millis: 300000
  12. min-idle: 5
  13. password: 123456
  14. pool-prepared-statements: true
  15. test-on-borrow: false
  16. test-on-return: false
  17. test-while-idle: true
  18. time-between-eviction-runs-millis: 60000
  19. url:
  20. username: ep_qa
  21. validation-query: SELECT 1 FROM DUAL
  22. storage-db:
  23. db-type: com.alibaba.druid.pool.DruidDataSource
  24. driverClassName: com.mysql.cj.jdbc.Driver
  25. initial-size: 5
  26. max-active: 20
  27. max-pool-prepared-statement-per-connection-size: 20
  28. max-wait: 60000
  29. min-evictable-idle-time-millis: 300000
  30. min-idle: 5
  31. password: 123456
  32. pool-prepared-statements: true
  33. test-on-borrow: false
  34. test-on-return: false
  35. test-while-idle: true
  36. time-between-eviction-runs-millis: 60000
  37. url:
  38. username: ep_qa
  39. validation-query: SELECT 1 FROM DUAL

maven 配置

  1. <dependency>
  2. <groupId>com.baomidou</groupId>
  3. <artifactId>mybatis-plus-boot-starter</artifactId>
  4. <version>${mybatis-plus.version}</version>
  5. </dependency>
  6. <!--德鲁伊-->
  7. <dependency>
  8. <groupId>com.alibaba</groupId>
  9. <artifactId>druid-spring-boot-starter</artifactId>
  10. <version>1.1.23</version>
  11. <exclusions>
  12. <exclusion>
  13. <groupId>org.springframework.boot</groupId>
  14. <artifactId>spring-boot-dependencies</artifactId>
  15. </exclusion>
  16. </exclusions>
  17. </dependency>

注意德罗伊做 多数据源 mp 配置在yml 不生效需要手写 配置文件

storage-db 配置文件

  1. package com.saikul.weighbridge.config;
  2. import com.alibaba.druid.pool.DruidDataSource;
  3. import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
  4. import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
  5. import org.apache.ibatis.session.SqlSessionFactory;
  6. import org.mybatis.spring.SqlSessionTemplate;
  7. import org.mybatis.spring.annotation.MapperScan;
  8. import org.mybatis.spring.boot.autoconfigure.MybatisProperties;
  9. import org.springframework.beans.factory.annotation.Qualifier;
  10. import org.springframework.boot.context.properties.ConfigurationProperties;
  11. import org.springframework.context.annotation.Bean;
  12. import org.springframework.context.annotation.Configuration;
  13. import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
  14. import org.springframework.core.io.support.ResourcePatternResolver;
  15. /**
  16. * 配置数据源 注意包扫描路径 使用在 那个 路径下 dao 下面的 接口方法 就是使用的哪个数据源
  17. */
  18. @Configuration
  19. @MapperScan(basePackages = {"com.saikul.storage.dao"}, sqlSessionTemplateRef = "storageSqlTemplate")
  20. public class StorageDataSourceConfig {
  21. @Bean(name = "storageDatasource")
  22. @ConfigurationProperties(prefix = "spring.datasource.druid.storage-db") //指定数据源
  23. public DruidDataSource druidDataSource1() {
  24. return DruidDataSourceBuilder.create().build();
  25. }
  26. @Bean(name = "storageSqlFactory")
  27. public SqlSessionFactory sqlSessionFactory(@Qualifier("storageDatasource") DruidDataSource dataSource, MybatisProperties mybatisProperties)
  28. throws Exception {
  29. MybatisSqlSessionFactoryBean factoryBean = new MybatisSqlSessionFactoryBean();
  30. factoryBean.setDataSource(dataSource);
  31. //关闭驼峰规则
  32. factoryBean.getObject().getConfiguration().setMapUnderscoreToCamelCase(false);
  33. factoryBean.setConfigurationProperties(mybatisProperties.getConfigurationProperties());
  34. ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
  35. factoryBean.setMapperLocations(resolver.getResources("classpath*:mapping/storage/*.xml"));
  36. return factoryBean.getObject();
  37. }
  38. @Bean(name = "storageSqlTemplate")
  39. public SqlSessionTemplate sqlSessionTemplate(@Qualifier("storageSqlFactory") SqlSessionFactory sqlSessionFactory) {
  40. return new SqlSessionTemplate(sqlSessionFactory);
  41. }
  42. }

wb-db 多数据源配置

  1. package com.saikul.weighbridge.config;
  2. import com.alibaba.druid.pool.DruidDataSource;
  3. import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
  4. import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
  5. import org.apache.ibatis.session.SqlSessionFactory;
  6. import org.mybatis.spring.SqlSessionTemplate;
  7. import org.mybatis.spring.annotation.MapperScan;
  8. import org.mybatis.spring.boot.autoconfigure.MybatisProperties;
  9. import org.springframework.beans.factory.annotation.Qualifier;
  10. import org.springframework.boot.context.properties.ConfigurationProperties;
  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.core.io.support.ResourcePatternResolver;
  16. /**
  17. * 配置数据源 注意包扫描路径 使用在 那个 路径下 dao 下面的 接口方法 就是使用的哪个数据源
  18. */
  19. @Configuration
  20. @MapperScan(basePackages = {"com.saikul.weighbridge.dao"}, sqlSessionTemplateRef = "wbSqlTemplate")
  21. public class WbDataSourceConfig {
  22. @Primary
  23. @Bean(name = "wbDatasource")
  24. @ConfigurationProperties(prefix = "spring.datasource.druid.wb-db") //指定yml配置数据源
  25. public DruidDataSource druidDataSource1() {
  26. return DruidDataSourceBuilder.create().build();
  27. }
  28. @Bean(name = "wbSqlFactory")
  29. public SqlSessionFactory sqlSessionFactory(@Qualifier("wbDatasource") DruidDataSource dataSource, MybatisProperties mybatisProperties)
  30. throws Exception {
  31. MybatisSqlSessionFactoryBean factoryBean = new MybatisSqlSessionFactoryBean();
  32. factoryBean.setDataSource(dataSource);
  33. //关闭驼峰规则
  34. factoryBean.getObject().getConfiguration().setMapUnderscoreToCamelCase(false);
  35. factoryBean.setConfigurationProperties(mybatisProperties.getConfigurationProperties());
  36. ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
  37. factoryBean.setMapperLocations(resolver.getResources("classpath*:mapping/wb/*.xml"));
  38. return factoryBean.getObject();
  39. }
  40. @Bean(name = "wbSqlTemplate")
  41. public SqlSessionTemplate sqlSessionTemplate(@Qualifier("wbSqlFactory") SqlSessionFactory sqlSessionFactory) {
  42. return new SqlSessionTemplate(sqlSessionFactory);
  43. }
  44. }

使用德鲁伊 配置数据源 不需要使用ds 注解 路径如图所示

image.png

  1. @Resource
  2. private LxTLoadometerMapper lxTLoadometerMapper;
  3. @Resource
  4. private LxTLdimageMapper lxTLdimageMapper;
  5. @Resource
  6. private ReadLoadmeterMapper readLoadmeterMapper;

使用和平常使用没有俩样 会根据 mapper的扫描路径 自动找数据源