Mybatis-plus多数据源 + 数据库连接明文加密
核心依赖
<!--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多数据源 + 数据库连接明文加密的更多相关文章
- Jboss 数据源密码明文加密
转载:https://blog.csdn.net/iberr/article/details/40896479 备注:解密小程序没有测试,知识了解了加密解密过程.对自己的帮助是看懂了连接数据库的配置, ...
- 配置 Druid 数据源及密码加密-SpringBoot 2.7 实战基础
在SpringBoot中配置 Druid 数据源及密码加密的方法 前文集成 MyBatis Plus,实现了一组增删改查接口.在启动服务时,从控制台中可以看出 Spring Boot 默认使用 Hik ...
- spring+myBatis 配置多数据源,切换数据源
注:本文来源于 tianzhiwuqis <spring+myBatis 配置多数据源,切换数据源> 一个项目里一般情况下只会使用到一个数据库,但有的需求是要显示其他数据库的内容,像这样 ...
- SSM框架之Mybatis(5)数据库连接池及事务
Mybatis(5)数据库连接池及事务 1.Mybatis连接池 Mybatis 中也有连接池技术,但是它采用的是自己的连接池技术.在 Mybatis 的 SqlMapConfig.xml 配置文 ...
- Spring Boot + Mybatis 配置多数据源
Spring Boot + Mybatis 配置多数据源 Mybatis拦截器,字段名大写转小写 package com.sgcc.tysj.s.common.mybatis; import java ...
- mybatis默认的数据源连接池(PooledDataSource和UnPooledDataSource)
一般情况下我们操作数据库都是通过connection,但是频繁创建和删除connection会严重影响效率,因此在这种情况下我们一般会用到连接池,因为项目中用到的是mybatis,所以了解一下myba ...
- 【springboot spring mybatis】看我怎么将springboot与spring整合mybatis与druid数据源
目录 概述 1.mybatis 2.druid 壹:spring整合 2.jdbc.properties 3.mybatis-config.xml 二:java代码 1.mapper 2.servic ...
- spring*.xml配置文件明文加密
spring*.xml配置文件明文加密 说明:客户要求spring*.xml中Oracle/Redis/MongoDB的IP.端口.用户名.密码不能明文存放,接到需求的我,很无奈,但是还是的硬着头皮搞 ...
- springboot和mybatis 配置多数据源
主数据源(由于代码没有办法复制的原因,下面图片和文字不一致) package com.zhianchen.mysqlremark.toword.config;import com.zaxxer.hik ...
- SpringBoot+MyBatis配置多数据源
SpringBoot 可以支持多数据源,这是一个非常值得学习的功能,但是从现在主流的微服务的架构模式中,每个应用都具有唯一且准确的功能,多数据源的需求很难用到,考虑到实际情况远远比理论复杂的多,这里还 ...
随机推荐
- torch.max与torch.argmax
形式: torch.max(input) → Tensor 返回输入tensor中所有元素的最大值: a = torch.randn(1, 3) >>0.4729 -0.2266 -0.2 ...
- pat乙级每日习题
欢迎加入我们:qq群:1054587486 1:https://pintia.cn/problem-sets/994805260223102976/problems/99480532591848652 ...
- OpenFOAM编程 | Hello OpenFOAM
写在前面 OpenFOAM 是一个非常好用的开源程序包,笔者一直在研究和使用,其编程语言是笔者非常喜欢使用的 C++.但是笔者不是很喜欢 OpenFOAM 自己的构建工具 wmake,更倾向于使用 C ...
- 多版本并发控制 MVCC
介绍多版本并发控制 多版本并发控制技术(Multiversion Concurrency Control,MVCC) 技术是为了解决问题而生的,通过 MVCC 我们可以解决以下几个问题: 读写之间阻塞 ...
- Exchange 2019数据库切换
最近在测试Exchange 2019的一些安装步骤.在测试到DAG的数据库切换的时候遇到了一些问题.An Active Manager operation failed. Error: The dat ...
- 使用ESP8266nodeMCU 向微信推送模板数据
使用HTTPS协议向微信公众号推送消息,(使用ESP8266的低成本实现) 前几天被朋友问到这个东西的实现方式,花了一下午时间研究一下,特此记录.没有排版比较乱. 一丶前往微信公众平台注册微信微信公众 ...
- Python数据科学手册-Numpy的结构化数组
结构化数组 和 记录数组 为复合的.异构的数据提供了非常有效的存储 (一般使用pandas 的 DataFrame来实现) 传入的dtpye 使用 Numpy数据类型 Character Descri ...
- phpoffice文档笔记
目录 phpword html转word phpexcel 从数据库导出 phpword html转word <?php namespace app\index\controller; use ...
- day02-代码实现01
多用户即时通讯系统02 4.编码实现01 4.1功能实现-用户登录 4.1.1功能说明 因为还没有学习数据库,我们人为规定 用户名/id = 100,密码为 123456 就可以登录,其他用户不能登录 ...
- Mysql三种日志(binlog,redolog,undolog)的作用和区别
Mysql有三种很重要的日志也是面试经常涉及到的考点,分别是 binlog .redo log和undo log, 这里面binlog 是server层实现的日志,而redo log 和undo lo ...