若依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 测试新的数据源新增用户

  • 发起请求
    在这里插入图片描述
  • 测试结果
    在这里插入图片描述
目录
相关文章
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
454 0
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
898 0
|
JSON 分布式计算 大数据
springboot项目集成大数据第三方dolphinscheduler调度器
springboot项目集成大数据第三方dolphinscheduler调度器
825 3
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
1100 2
|
分布式计算 大数据 Java
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
354 0
|
Java 关系型数据库 MySQL
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
1117 2
|
分布式计算 Java 大数据
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
611 2
|
分布式计算 Java 大数据
springboot项目集成dolphinscheduler调度器 项目管理
springboot项目集成dolphinscheduler调度器 项目管理
375 0
|
网络协议 Java
在SpringBoot项目中使用Netty实现远程调用
本文介绍了使用Netty解决网络连接性能问题的方法,重点讲解了Netty的NIO特性及其在SpringBoot中的应用。Netty作为高效的NIO框架,支持非阻塞IO,能通过单线程管理多个客户端连接,简化TCP/UDP套接字服务器开发。文章详细展示了Netty在SpringBoot中实现远程调用的过程,包括服务端与客户端代码实现、依赖配置及测试验证。通过示例代码,如`NettyServer`、`NettyClientUtil`等,清晰说明了Netty的工作原理和实际应用,解决了半包等问题,并提供了完整的测试结果。
1066 3
|
druid Java 关系型数据库
Spring Boot与Druid升级解决方案
好的,我需要帮助用户解决他们遇到的数据库连接问题,并升级项目的依赖。首先,用户提供的错误信息是关于Spring Boot应用在初始化数据源时抛出的异常,具体是Druid连接池验证连接失败。同时,用户希望升级项目的依赖版本。
1203 10