pom.xml依赖添加
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<!--主要依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.22</version>
</dependency>
application.yml 配置
spring:
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
dynamic:
#通用配置
druid:
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
filters: stat,wall
use-global-data-source-stat: true
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
stat:
merge-sql: true
log-slow-sql: true
slow-sql-millis: 2000
#默认数据源
primary: master
#多数据源添加
datasource:
master:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/greenfood?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
username: root
password: djzn1269
other:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/other?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
username: root
password: djzn1269
补充—mybatis-plus 指定返回字段包括空字段设置
mybatis-plus:
configuration:
call-setters-on-nulls: true
数据源分组类
/**
* 与application.yml 文件中datasource对应
*/
public class DBConstants {
/**
* 数据源分组 - 主要库
*/
public static final String DATASOURCE_MASTER = "master";
/**
* 数据源分组 - 副库
*/
public static final String DATASOURCE_OTHER = "other";
}
使用方法
在服务实现类上或方法上直接添加**@DS**注解
/**
* <p>
* 服务实现类
* </p>
*
* @author wuchen
* @date 2020-12-25
*/
@Service
@DS(DBConstants.DATASOURCE_MASTER)
public class TokenServiceImpl extends ServiceImpl<TokenMapper, Token> implements TokenService {
@Resource
private TokenMapper tokenMapper;
@Override
public boolean updateToken(String str) {
Token token = new Token();
token.setId(122);
token.setToken(str);
return tokenMapper.updateById(token) > 0;
}
@Transactional(readOnly = true)
@Override
@DS(DBConstants.DATASOURCE_OTHER)
public Token selectToken() {
return tokenMapper.selectById("122");
}
}
源码解析
参考文章
实用框架小白学习ing~