核心依赖

        <!--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. Python实践项目——LSB隐写术

    此为北京理工大学某专业某学期某课程的某次作业 一.项目背景 1.隐写术 隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容. 2.L ...

  2. 002从零开始入门Entity Framework Core——DbContext生存期、配置和初始化

    阅读须知:本文为入门介绍.指引文章,所示代码皆为最简易(或仅为实现功能)的演示示例版本,不一定切实符合个人(企业)实际开发需求. 一.DbContext生存期 DbContext 的生存期从创建实例时 ...

  3. ProxySQL 密码管理

    ProxySQL是一个协议感知的proxy.由于ProxySQL基于流量进行路由,当一个客户端连接ProxySQL时,它还无法识别它的目标主机组,因此ProxySQL需要对该客户端进行认证.基于此,需 ...

  4. 使用traefik进行流量复制

    文章转载自:https://mp.weixin.qq.com/s/nMMN7hAJK6SFn1V1YyxvHA Traefik 2.0 还引入了镜像服务,一种可以将流入流量复制并同时将其发送给其他服务 ...

  5. 配置Pod的 /etc/hosts

    某些情况下,DNS 或者其他的域名解析方法可能不太适用,您需要配置 /etc/hosts 文件,在Linux下是比较容易做到的,在 Kubernetes 中,可以通过 Pod 定义中的 hostAli ...

  6. linux开机自启服务

    前言:最近,有一个项目需要用到开机自动启动机房,所以就研究了一下 1.把node的快捷方式放在放在/usr/bin/(环境变量)下面,所有的命令默认是从这里面进行调用的 ln -s /home/too ...

  7. C语言:类型存储

    类型存储 char: 可能为signed char 或 unsigned char ,根据编译器不同实现不同.占位一个字节.Signed char取值范围为-128~127, unsigned cha ...

  8. Vue-amap的使用

    (1)Npm安装:npm install vue-amap –save (2)在main.js中配置 首先需要在项目初始化时,通过 initAMapApiLoader 引入所需要的插件: (3)vue ...

  9. 挑战海量数据:基于Apache DolphinScheduler对千亿级数据应用实践

    点亮 ️ Star · 照亮开源之路 GitHub:https://github.com/apache/dolphinscheduler 精彩回顾 近期,初灵科技的大数据开发工程师钟霈合在社区活动的线 ...

  10. Java递归查找层级文件夹下特定内容的文件

    递归查找文件 引言 或许是文件太多,想找某个文件又忘记放哪了;又或者是项目改造,需要将外部调用接口进行改造,项目太多,又无法排查.那么怎么快速找到自己想要的内容就是一件值得思考的事情了. 根据特定内容 ...