若依Springboot项目Druid不停机更换数据源

简介: 若依Springboot项目Druid不停机更换数据源

@[TOC]

1 不停机通过接口切换数据源

@GetMapping("/updateDruidProperty")
@Anonymous
    public AjaxResult updateProperty(){
   
   
        DruidDataSource dataSource = SpringUtils.getBean("masterDataSource");
        try {
   
   
            Properties properties = new Properties();
            // 这里是测试写法,具体的value可以通过请求参数传递过来
            // 例如 http://localhost:8080/test?druid.url="...."&&druid.username="...."&&druid.password="...."
            properties.setProperty("druid.url","jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8");
            properties.setProperty("druid.username","root");
            properties.setProperty("druid.password","root");
            dataSource.restart(properties);
        } catch (SQLException throwables) {
   
   
            throwables.printStackTrace();
        }
        return AjaxResult.success();
    }

2 随便写个接口测试

@GetMapping("/insertUser")
    @Anonymous
    public AjaxResult insertUser(){
   
   
        SysUser user = new SysUser();
        user.setUserName("胡云峰");
        user.setNickName("logicfeng");
        userService.insertUser(user);
        String password = configurableEnvironment.getProperty("spring.datasource.druid.master.password");
        return AjaxResult.success(password);
    }

3 使用apifox测试

3.1 切换数据源前新增数据

  • 发起请求
    在这里插入图片描述
  • 测试结果
    在这里插入图片描述

    3.2 切换数据源

  • 发起请求
    在这里插入图片描述

    3.3 测试新的数据源新增用户

  • 发起请求
    在这里插入图片描述
  • 测试结果
    在这里插入图片描述
目录
相关文章
|
1月前
|
Java 应用服务中间件 数据库连接
面试官:SpringBoot如何优雅停机?
面试官:SpringBoot如何优雅停机?
175 0
|
1月前
|
druid Java 数据库
druid+springboot加解密Druid链接池配置加密密码链接数据库
druid+springboot加解密Druid链接池配置加密密码链接数据库
177 0
|
6天前
|
druid Java 关系型数据库
在Spring Boot中集成Druid实现多数据源有两种常用的方式:使用Spring Boot的自动配置和手动配置。
在Spring Boot中集成Druid实现多数据源有两种常用的方式:使用Spring Boot的自动配置和手动配置。
58 5
|
5天前
|
druid Java 数据库
spring boot 整合 druid(深入浅出)
spring boot 整合 druid(深入浅出)
16 0
|
1月前
|
SQL 监控 druid
SpringBoot配置Druid
SpringBoot配置Druid
|
1月前
|
监控 druid Java
Spring Boot3整合Druid(监控功能)
Spring Boot3整合Druid(监控功能)
134 1
|
1月前
|
druid Java 数据库连接
SpringBoot + Mybatis + Druid + PageHelper 实现多数据源分页
SpringBoot + Mybatis + Druid + PageHelper 实现多数据源分页
67 0
|
1月前
|
XML 监控 druid
【Java专题_02】springboot+mybatis+pagehelper分页插件+druid数据源详细教程
【Java专题_02】springboot+mybatis+pagehelper分页插件+druid数据源详细教程
79 0
|
1月前
|
缓存 Java 数据库连接
微服务框架(六)Spring Boot集成Mybatis及Druid
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Spring Boot集成Mybatis,包括mybatis-generator的使用
|
1月前
|
druid Java 数据库
SpringBoot整合Druid
SpringBoot整合Druid
67 0