1. 多数据源支持
a. 需要引入 dynamic-datasource-spring-boot-starter 依赖
<dependency>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<groupId>com.baomidou</groupId>
<scope>provided</scope>
</dependency>
复制代码
b. 在对应的 Mapper 添加对应的数据源注解
@DS("datasource_1")
public interface TBlackUserInfoMapper extends BaseMapper<TBlackUserInfo> {
}
复制代码
c. 配置文件中,配置多数据源
spring:
datasource:
dynamic:
primary: datasource_1
strict: true
datasource:
datasource_1:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/db1?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
username: user1
password: user1_password
hikari:
max-lifetime: 120000
datasource_2:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/db2?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true
username: user2
password: user2_password
hikari:
max-lifetime: 120000
复制代码
2. 不建议使用 ServiceImpl<M extends BaseMapper<T>, T>
@Service
public class HotspotReportService extends ServiceImpl<THotspotReportMapper, THotspotReport> {
}
复制代码
虽然这样做,可以减少很多的代码量、开发量,对于一次性交付的、不考虑以后维护的,是有益处的;
但是,这是很违背分层原则的,这样做导致 Service 实现和 Repository 柔和在一起,以后维护起来是很麻烦的;
推荐的做法是 Service 层 和 Repository 分离,在 Service 层,通过引用使用 Repository
评论