yml 文件
spring: datasource: druid: wb-db: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver initial-size: 5 max-active: 20 max-pool-prepared-statement-per-connection-size: 20 max-wait: 60000 min-evictable-idle-time-millis: 300000 min-idle: 5 password: 123456 pool-prepared-statements: true test-on-borrow: false test-on-return: false test-while-idle: true time-between-eviction-runs-millis: 60000 url: username: ep_qa validation-query: SELECT 1 FROM DUAL storage-db: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver initial-size: 5 max-active: 20 max-pool-prepared-statement-per-connection-size: 20 max-wait: 60000 min-evictable-idle-time-millis: 300000 min-idle: 5 password: 123456 pool-prepared-statements: true test-on-borrow: false test-on-return: false test-while-idle: true time-between-eviction-runs-millis: 60000 url: username: ep_qa validation-query: SELECT 1 FROM DUAL
maven 配置
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency><!--德鲁伊--><dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.23</version> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> </exclusion> </exclusions> </dependency>
注意德罗伊做 多数据源 mp 配置在yml 不生效需要手写 配置文件
storage-db 配置文件
package com.saikul.weighbridge.config;import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionTemplate;import org.mybatis.spring.annotation.MapperScan;import org.mybatis.spring.boot.autoconfigure.MybatisProperties;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.core.io.support.ResourcePatternResolver;/*** 配置数据源 注意包扫描路径 使用在 那个 路径下 dao 下面的 接口方法 就是使用的哪个数据源*/@Configuration@MapperScan(basePackages = {"com.saikul.storage.dao"}, sqlSessionTemplateRef = "storageSqlTemplate")public class StorageDataSourceConfig { @Bean(name = "storageDatasource") @ConfigurationProperties(prefix = "spring.datasource.druid.storage-db") //指定数据源 public DruidDataSource druidDataSource1() { return DruidDataSourceBuilder.create().build(); } @Bean(name = "storageSqlFactory") public SqlSessionFactory sqlSessionFactory(@Qualifier("storageDatasource") DruidDataSource dataSource, MybatisProperties mybatisProperties) throws Exception { MybatisSqlSessionFactoryBean factoryBean = new MybatisSqlSessionFactoryBean(); factoryBean.setDataSource(dataSource); //关闭驼峰规则 factoryBean.getObject().getConfiguration().setMapUnderscoreToCamelCase(false); factoryBean.setConfigurationProperties(mybatisProperties.getConfigurationProperties()); ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); factoryBean.setMapperLocations(resolver.getResources("classpath*:mapping/storage/*.xml")); return factoryBean.getObject(); } @Bean(name = "storageSqlTemplate") public SqlSessionTemplate sqlSessionTemplate(@Qualifier("storageSqlFactory") SqlSessionFactory sqlSessionFactory) { return new SqlSessionTemplate(sqlSessionFactory); }}
wb-db 多数据源配置
package com.saikul.weighbridge.config;import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionTemplate;import org.mybatis.spring.annotation.MapperScan;import org.mybatis.spring.boot.autoconfigure.MybatisProperties;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.context.annotation.Primary;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import org.springframework.core.io.support.ResourcePatternResolver;/** * 配置数据源 注意包扫描路径 使用在 那个 路径下 dao 下面的 接口方法 就是使用的哪个数据源 */@Configuration@MapperScan(basePackages = {"com.saikul.weighbridge.dao"}, sqlSessionTemplateRef = "wbSqlTemplate")public class WbDataSourceConfig { @Primary @Bean(name = "wbDatasource") @ConfigurationProperties(prefix = "spring.datasource.druid.wb-db") //指定yml配置数据源 public DruidDataSource druidDataSource1() { return DruidDataSourceBuilder.create().build(); } @Bean(name = "wbSqlFactory") public SqlSessionFactory sqlSessionFactory(@Qualifier("wbDatasource") DruidDataSource dataSource, MybatisProperties mybatisProperties) throws Exception { MybatisSqlSessionFactoryBean factoryBean = new MybatisSqlSessionFactoryBean(); factoryBean.setDataSource(dataSource); //关闭驼峰规则 factoryBean.getObject().getConfiguration().setMapUnderscoreToCamelCase(false); factoryBean.setConfigurationProperties(mybatisProperties.getConfigurationProperties()); ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); factoryBean.setMapperLocations(resolver.getResources("classpath*:mapping/wb/*.xml")); return factoryBean.getObject(); } @Bean(name = "wbSqlTemplate") public SqlSessionTemplate sqlSessionTemplate(@Qualifier("wbSqlFactory") SqlSessionFactory sqlSessionFactory) { return new SqlSessionTemplate(sqlSessionFactory); }}
使用德鲁伊 配置数据源 不需要使用ds 注解 路径如图所示

@Resource private LxTLoadometerMapper lxTLoadometerMapper; @Resource private LxTLdimageMapper lxTLdimageMapper; @Resource private ReadLoadmeterMapper readLoadmeterMapper;
使用和平常使用没有俩样 会根据 mapper的扫描路径 自动找数据源