springBoot自定义配置druid主从数据库动态切换

1.先写一个配置类,分别是主库和从库的配置连接

2.配置application 对于config的获取  

order-master和order-servant 只是自定义的名字  你想叫什么就叫什么

3.创建一个注解类  名字随你叫 并且默认访问的是Master数据库用于方法的主从切库 后面会用到

4.动态切换数据源配置

ThreadLocal<String> name  我们需要把当前线程记录给保存下来,用于切表使用

5.配置一个aop   在指定包下和加了YZC注解进行aop,分别是方法的前后设置访问的数据库和清除当前标识,一定要清除标识,不然线程会一直记住此标识

6.在方法上实际调用

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,关于配置 Druid 数据源,你可以按照以下步骤进行: 1. 在 pom.xml 中添加 Druid 和 JDBC 驱动的依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.6</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23</version> </dependency> ``` 2. 在 application.properties 或 application.yml 中配置数据源信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource # Druid 连接池配置 druid: initial-size: 5 min-idle: 5 max-active: 20 test-on-borrow: true validation-query: SELECT 1 FROM DUAL ``` 3. 在启动类上添加 @EnableTransactionManagement 注解开启事务管理,并在数据源配置类上添加 @ConfigurationProperties(prefix = "spring.datasource.druid") 注解将 Druid配置属性注入到数据源中。 ```java @SpringBootApplication @EnableTransactionManagement public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } @Configuration @ConfigurationProperties(prefix = "spring.datasource.druid") public class DruidConfig { private String url; private String username; private String password; private String driverClassName; private int initialSize; private int minIdle; private int maxActive; private int maxWait; // 省略 getter 和 setter 方法 @Bean public DataSource dataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); dataSource.setDriverClassName(driverClassName); dataSource.setInitialSize(initialSize); dataSource.setMinIdle(minIdle); dataSource.setMaxActive(maxActive); dataSource.setMaxWait(maxWait); return dataSource; } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值