核心依赖

        <!--mybatis-plus 核心组件-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
<!--mybatis-plus多数据源开发-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
</project>

数据库连接明文加密

1.生成秘钥

2.生成密文

3.密文填写配置文件

 @Test
public void testJiaMi(){
//生成秘钥
String randomKey = AES.generateRandomKey();
String data2 = "jdbc:mysql://localhost:3306/study03?useSSL=false&serverTimezone=UTC";
// 随机密钥加密
String result = AES.encrypt(data2, randomKey);
System.out.println(randomKey+"||"+result);
}

秘钥 在启动参数 (Program arguments) --mpw.key=4b57e89bac82a797

类似如下填写

  datasource:
driver-class-name: com.mysql.jdbc.Driver
url:mpw:dNjT0C8R2vh972whSGklO69WmcQZH494voJk38q/JmdnswjmjMJpyyQvGii+YmLe
username: mpw:3IAJ/lzGvlG5+CSXhe2S2g==
password: mpw:3IAJ/lzGvlG5+CSXhe2S2g==

多数据源配置

server:
port: 8082
spring:
profiles:
active: prod
datasource: #使用了mybatis-plus的加密,密匙传递在启动参数
#mybatis-plus多数据源框架
dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
datasource:
master:
driver-class-name: com.mysql.jdbc.Driver
url: mpw:dNjT0C8R2vh972whSGklO69WmcQZH494voJk38q/Jmfr7P7L5i6A9aReXemBPXCB6125DwN+5EYRTy/oNOA4AXe2/1XDMnOuQPXNVCJ2C4k=
username: mpw:3IAJ/lzGvlG5+CSXhe2S2g==
password: mpw:3IAJ/lzGvlG5+CSXhe2S2g==
slave_1:
url: mpw:dNjT0C8R2vh972whSGklOyqz7hR9ntRUU58MOiSftOelxMKOCB2rquB+qAZ5KF8IJAV7bVvXjNKSt6qpsnKaV6nz6jV0A27NhwchZZroWgQ=
username: mpw:3IAJ/lzGvlG5+CSXhe2S2g==
password: mpw:3IAJ/lzGvlG5+CSXhe2S2g==
driver-class-name: com.mysql.jdbc.Driver
slave_2:
url: mpw:dNjT0C8R2vh972whSGklO69WmcQZH494voJk38q/JmfDVhJi8IkUYln5KNoyZqSOKZXC0FiZKBGg46AYzRk1lRv6ZdJdSRi/hSoxPoph5VI=
username: mpw:3IAJ/lzGvlG5+CSXhe2S2g==
password: mpw:3IAJ/lzGvlG5+CSXhe2S2g==
driver-class-name: com.mysql.jdbc.Driver
mybatis-plus:
type-aliases-package: com.example.entity #实体类别名
mapper-locations: classpath:mapper/*.xml # 扫描的xml
configuration:
map-underscore-to-camel-case: true #开启驼峰命名
cache-enabled: false
check-config-location: true # 检查xml是否存在
type-enums-package: com.example.enumpackage #通用枚举开启

使用切换数据源

package com.example.controller;

import com.baomidou.dynamic.datasource.annotation.DS;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import java.util.List;
import java.util.Map; /**
* @description: mybatisPlus多数据源
* @author: GuoTong
* @createTime: 2021-08-21 22:53
* @since JDK 1.8 OR 11
**/
@RestController
public class MoreDataSource { @Autowired
private JdbcTemplate jdbcTemplate; @RequestMapping("/datasource01")
@DS("master")
public Object datasource01() {
List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from user");
return list;
} @RequestMapping("/datasource02")
@DS("slave_1")
public Object datasource02() {
List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from user");
return list;
} @RequestMapping("/datasource03")
@DS("slave_2")
public Object datasource03() {
List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from user");
return list;
}
}

效果

http://localhost:8082/datasource01

http://localhost:8082/datasource02



http://localhost:8082/datasource03

结束

Mybatis-plus多数据源 + 数据库连接明文加密的更多相关文章

  1. Jboss 数据源密码明文加密

    转载:https://blog.csdn.net/iberr/article/details/40896479 备注:解密小程序没有测试,知识了解了加密解密过程.对自己的帮助是看懂了连接数据库的配置, ...

  2. 配置 Druid 数据源及密码加密-SpringBoot 2.7 实战基础

    在SpringBoot中配置 Druid 数据源及密码加密的方法 前文集成 MyBatis Plus,实现了一组增删改查接口.在启动服务时,从控制台中可以看出 Spring Boot 默认使用 Hik ...

  3. spring+myBatis 配置多数据源,切换数据源

    注:本文来源于  tianzhiwuqis <spring+myBatis 配置多数据源,切换数据源> 一个项目里一般情况下只会使用到一个数据库,但有的需求是要显示其他数据库的内容,像这样 ...

  4. SSM框架之Mybatis(5)数据库连接池及事务

    Mybatis(5)数据库连接池及事务 1.Mybatis连接池 ​ Mybatis 中也有连接池技术,但是它采用的是自己的连接池技术.在 Mybatis 的 SqlMapConfig.xml 配置文 ...

  5. Spring Boot + Mybatis 配置多数据源

    Spring Boot + Mybatis 配置多数据源 Mybatis拦截器,字段名大写转小写 package com.sgcc.tysj.s.common.mybatis; import java ...

  6. mybatis默认的数据源连接池(PooledDataSource和UnPooledDataSource)

    一般情况下我们操作数据库都是通过connection,但是频繁创建和删除connection会严重影响效率,因此在这种情况下我们一般会用到连接池,因为项目中用到的是mybatis,所以了解一下myba ...

  7. 【springboot spring mybatis】看我怎么将springboot与spring整合mybatis与druid数据源

    目录 概述 1.mybatis 2.druid 壹:spring整合 2.jdbc.properties 3.mybatis-config.xml 二:java代码 1.mapper 2.servic ...

  8. spring*.xml配置文件明文加密

    spring*.xml配置文件明文加密 说明:客户要求spring*.xml中Oracle/Redis/MongoDB的IP.端口.用户名.密码不能明文存放,接到需求的我,很无奈,但是还是的硬着头皮搞 ...

  9. springboot和mybatis 配置多数据源

    主数据源(由于代码没有办法复制的原因,下面图片和文字不一致) package com.zhianchen.mysqlremark.toword.config;import com.zaxxer.hik ...

  10. SpringBoot+MyBatis配置多数据源

    SpringBoot 可以支持多数据源,这是一个非常值得学习的功能,但是从现在主流的微服务的架构模式中,每个应用都具有唯一且准确的功能,多数据源的需求很难用到,考虑到实际情况远远比理论复杂的多,这里还 ...

随机推荐

  1. 使用mbr2gpt将MBR磁盘转换为GPT磁盘

    随着越来越多的新PC的到来,UEFI启动渐渐的取代了BIOS启动方式.不过UEFI需要从GPT磁盘启动,原来的MBR磁盘不行.如果你更换了硬件,只想把磁盘拿到新平台上用又不想重装系统的话就麻烦了.以前 ...

  2. 5、Math类

    Math类 Math类包含用于执行基本数学运算的方法,如初等数学,对数,平方根和三角函数 常用方法 //Math 常用方法(静态方法) //1.abs 绝对值 int abs = Math.abs(- ...

  3. Kubernetes 控制器

    在实际使用的时候并不会直接使用 Pod,而是会使用各种控制器来满足我们的需求,Kubernetes 中运行了一系列控制器来确保集群的当前状态与期望状态保持一致,它们就是 Kubernetes 的大脑. ...

  4. 安装skywalking(测试使用)

    官方下载地址:https://skywalking.apache.org/downloads/ 需要: JDK8到JDK12已测试,其他版本未测试. # 在线安装jdk8 rpm -ivh https ...

  5. Python离线安装Flask

    受限于内网,无法使用pip install Flask直接安装. 以Flask-0.12.2为例 安装Flask需要以下的依赖性,在安装Flask离线版时可以看到依赖性要求. 离线安装文件地址: ht ...

  6. Java泛型的总结

    泛型可以用于接口.类.方法上.还有泛型通配符这个概念 泛型的好处:可以在编译时检查 1.用于方法中,指定该方法中的形参的类型. 语法:修饰符 <代表泛型的变量> 返回值类型 方法名(参数) ...

  7. 如何通过 Java 代码隐藏 Word 文档中的指定段落

    在编辑Word文档时,我们有时需要将一些重要信息保密. 因此,可以隐藏它们以确保机密性. 在本文中,将向您介绍如何通过 Java 程序中的代码隐藏 Word 文档中的特定段落.下面是我整理的具体步骤, ...

  8. Netty 学习(六):创建 NioEventLoopGroup 的核心源码说明

    Netty 学习(六):创建 NioEventLoopGroup 的核心源码说明 作者: Grey 原文地址: 博客园:Netty 学习(六):创建 NioEventLoopGroup 的核心源码说明 ...

  9. CentOS 7.9 安装 redis-6.2.0

    一.CentOS 7.9 安装 redis-6.2.0 1 下载地址:https://download.redis.io/releases/redis-6.2.0.tar.gz 2 安装gcc来进行编 ...

  10. 洛谷P2886 [USACO07NOV]Cow Relays G (矩阵乘法与路径问题)

    本题就是求两点间只经过n条边的最短路径,定义广义的矩阵乘法,就是把普通的矩阵乘法从求和改成了取最小值,把内部相乘改成了相加. 代码包含三个内容:广义矩阵乘法,矩阵快速幂,离散化: 1 #include ...