SpringBoot + Druid 多数据源配置
直接上代码~
环境
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
java 代码
- DBTypeEnum,多数据源枚举类,标识master和slave之分,增减其他数据源亦方便
public enum DBTypeEnum {
MASTER, SLAVE
}
- DataSource注解类,用于在service层或dao层切换数据源,通过value进行区分,这里默认使用master库
@Retention(RetentionPolicy.RUNTIME)
@Target({
ElementType.TYPE,ElementType.METHOD})
public @interface DataSource {
DBTypeEnum value() default DBTypeEnum.MASTER;
}
3.DBHelper,存储当前线程使用的数据源的key,通过在切面中设置key达到关联数据源的目的
@Component
public class DBHelper {
private Thread

本文介绍了如何在SpringBoot项目中结合Druid实现多数据源配置,包括DBTypeEnum枚举类用于标记数据源类型,@DataSource注解在服务层或DAO层切换数据源,DynamicDataSource作为动态数据源的核心,以及相关的Java配置和YAML配置。同时提供了在Mapper层或DAO层通过注解选择数据源的示例,并列举了参考资料。
最低0.47元/天 解锁文章
5748

被折叠的 条评论
为什么被折叠?



