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>
@Servicepublic class HotspotReportService extends ServiceImpl<THotspotReportMapper, THotspotReport> {}
复制代码
虽然这样做,可以减少很多的代码量、开发量,对于一次性交付的、不考虑以后维护的,是有益处的;
但是,这是很违背分层原则的,这样做导致 Service 实现和 Repository 柔和在一起,以后维护起来是很麻烦的;
推荐的做法是 Service 层 和 Repository 分离,在 Service 层,通过引用使用 Repository
评论