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

  • 发起请求
    在这里插入图片描述
  • 测试结果
    在这里插入图片描述
目录
相关文章
|
27天前
|
前端开发 Java
表白墙/留言墙 —— 初级SpringBoot项目,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
文章通过一个表白墙/留言墙的初级SpringBoot项目实例,详细讲解了如何进行前后端开发,包括定义前后端交互接口、创建SpringBoot项目、编写前端页面、后端代码逻辑及实体类封装的全过程。
55 3
表白墙/留言墙 —— 初级SpringBoot项目,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
27天前
|
前端开发 Java 数据安全/隐私保护
用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程
文章通过一个简单的SpringBoot项目,详细介绍了前后端如何实现用户登录功能,包括前端登录页面的创建、后端登录逻辑的处理、使用session验证用户身份以及获取已登录用户信息的方法。
113 2
用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程
|
20天前
|
Java 数据库连接 Maven
springBoot:项目建立&配置修改&yaml的使用&resource 文件夹(二)
本文档介绍了如何创建一个基于Maven的项目,并配置阿里云仓库、数据库连接、端口号、自定义启动横幅及多环境配置等。同时,详细说明了如何使用YAML格式进行配置,以及如何处理静态资源和模板文件。文档还涵盖了Spring Boot项目的`application.properties`和`application.yaml`文件的配置方法,包括设置数据库驱动、URL、用户名、密码等关键信息,以及如何通过配置文件管理不同环境下的应用设置。
|
26天前
|
NoSQL Java MongoDB
Springboot WebFlux项目结合mongodb进行crud
这篇文章介绍了如何使用Spring Boot WebFlux框架结合MongoDB进行基本的CRUD(创建、读取、更新、删除)操作,包括项目设置、实体类和Repository的创建、控制器的实现以及配置文件的编写。
39 0
Springboot WebFlux项目结合mongodb进行crud
|
18天前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
229 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
1天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
24天前
|
Java Maven Android开发
eclipse如何导入springboot项目
本文介绍了如何在Eclipse中导入Spring Boot项目。
20 1
eclipse如何导入springboot项目
|
10天前
|
druid Java Maven
|
26天前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
182 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
18天前
|
Java Maven Spring
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)
这篇文章介绍了在IntelliJ IDEA社区版中创建Spring Boot项目的三种方法,特别强调了第三种方法的详细步骤。
67 0
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)