Springboot整合Hikari数据库连接池,密码加密
1.application.yml配置
1 spring: 2 datasource: 3 jdbcUrl: jdbc:mysql://127.0.0.1:3306/jby?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false 4 username: root 5 password: 'f687101570bae7ce4d313c2b4440f4ae' 6 #自动提交 7 auto-commit: true 8 #最小连接 9 minimum-idle: 100 10 #最大连接 11 maximum-pool-size: 200 12 #最大空闲时间 13 idle-timeout: 60000 14 #连接池名 15 pool-name: DatebookHikariCP 16 #最大生命周期 17 max-lifetime: 900000 18 #连接超时时间 19 connection-timeout: 15000 20 #心跳检测 21 connection-test-query: SELECT 'x' FROM DUAL
2. 构建UmspscDataSource类,继承HikariDataSource类
1 @Slf4j 2 public class UmspscDataSource extends HikariDataSource { 3 private String passwordDis; 4 /** 5 * 密匙 6 */ 7 private final static String PKEY ="1234565437892132"; 8 @Override 9 public String getPassword(){ 10 11 if(StringUtils.isNotBlank(passwordDis)){return passwordDis;} 12 String encPassword = super.getPassword(); 13 if(null==encPassword){ 14 return null; 15 } 16 log.info("数据库密码加解密,{"+encPassword+"}"); 17 try{ 18 // 密文解密,解密方法可以修改 19 String key = HexUtil.encodeHexStr(PKEY); 20 SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key.getBytes()); 21 passwordDis = aes.decryptStr(encPassword, CharsetUtil.CHARSET_UTF_8); 22 return passwordDis; 23 }catch (Exception e){ 24 log.error("数据库密码解密出错,{"+encPassword+"}"); 25 log.error(LogUtil.e(e)); 26 throw new AppException("数据库密码解密失败!", e); 27 } 28 } 29 }
3.初始化DataSource类
1 @Component 2 public class CommonBeanFactory { 3 4 @Bean(name = "dataSource", autowire = Autowire.NO) 5 @Primary 6 @ConfigurationProperties(ignoreUnknownFields = false,prefix="spring.datasource") 7 public HikariDataSource dataSource() { 8 HikariDataSource druidDataSource = new UmspscDataSource(); 9 return druidDataSource; 10 } 11 }
*******************************
构建密文
1 @Slf4j 2 public class Main { 3 4 public static void main(String[] args) { 5 //明文 6 String content = "123456"; 7 //密匙 8 String pkey = "1234565437892132"; 9 log.info("密匙:" + pkey); 10 String key = HexUtil.encodeHexStr(pkey); 11 //构建 12 SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key.getBytes()); 13 14 //加密为16进制表示 15 String encryptHex = aes.encryptHex(content); 16 log.info("密文:" + encryptHex); 17 //解密为字符串 18 String decryptStr = aes.decryptStr(encryptHex, CharsetUtil.CHARSET_UTF_8); 19 log.info("明文:" + decryptStr); 20 } 21 }
转载于:https://www.cnblogs.com/ljb161108/p/11334451.html
Springboot整合Hikari数据库连接池,密码加密相关推荐
- SpringBoot整合Druid连接池
SpringBoot整合Druid连接池 前言 第一种整合方式 自定义的方式 引入Druid依赖 配置文件 配置类 实现监控功能 开启SQL防火墙 实现web应用 访问Druid页面需登录 第二种整合 ...
- SpringBoot整合Hikari
Hikari简介 什么是Hikari数据库连接池? 号称史上最快连接池 轻量! 如何整合? 无需导入依赖,以及被SpringBoot包含 是默认的数据库连接池 如何配置?两种方法 1.手动创建 pub ...
- SpringBoot集成Druid和数据库密码加密
Druid是阿里开发的数据库连接池,通过简单的配置,可以实现数据库的连接,性能特别强大,可以在页面访问,包括监控数据库性能参数,慢SQL统计,当然还包括数据库连接等. 今天主要记录一下SpringBo ...
- Springboot 整合SpringSecurity实现账号密码+手机验证码登陆
Springboot 整合SpringSecurity实现账号密码+手机验证码登陆 示例说明 版本 示例安装 Spring-security 介绍 为什么不用 shiro Spring-Securit ...
- springBoot配置文件设置mongodb连接密码加密
springBoot配置文件设置mongodb连接密码加密 方案 实践 pom文件引入依赖 application.yml文件中定义加密的秘钥 定义main函数测试加解密 把加密后的密码放置到Mong ...
- SpringBoot+2次MD5登录密码加密+MyBatisPlus+Thymeleaf+Bootstrap简单实现登录功能,一文轻松搞定!
这里写目录标题 一.演示GIF 二.开发前期准备 1.数据库 2.依赖POM.XML 3.idea结构目录 三.后端 1.实体类 2.mapper接口 3.mapper.xml 4.Servicce接 ...
- aliy 数据库连接池加密_Druid实现数据库连接用户密码加密 互联网技术圈 互联网技术圈...
一.Druid号称是Java语言中最好的数据库连接池. 1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问 ...
- springboot整合Jasypt对数据库密码进行加密
Jasypt 的特点 1.高安全性.基于标准的加密技术,适用于单向和双向加密.加密密码.文本.数字.二进制文件 2.适合集成到基于 Spring 的应用程序中 3.用于加密应用程序(即数据源)配置的集 ...
- hikaripool连接保持_springboot2的hikari数据库连接池默认配置
序 Spring-Boot-2.0.0-M1版本将默认的数据库连接池从tomcat jdbc pool改为了hikari,这里主要研究下hikari的默认配置 spring-configuration ...
最新文章
- python 监控windows磁盘空间和备份大小
- 网站内链优化中有哪些常见的形式?
- Oracle-临时表空间(组)解读
- html嵌入excel_第5天 | 16天搞定前端,html布局,表格和大块头
- DNF NPK包名对照一览表
- sql 语句,主键外键详解
- 关于二进制补码+CS5463
- nodejs 连接数据库 并在数据库上进行增删改查操作
- 慧之声科技-2019云呼叫时代
- ★关于人类体质弱化的分析
- C语言——深度剖析数据在内存中的存储
- HazelEngine 学习记录 - Layers
- cocos2d-x精灵的放大和缩小
- 【Python】伪距单点定位
- 如何利用大数据软件进行家政服务的选址要素收集与分析
- 项目依赖包文件生成requirements.txt
- 04、Netty学习笔记—(黏包半包及协议设计解析)
- Java报错---Cannot refer to the non-final local variable user defined in an enclosing scope
- 企业营销的内容之痛,腾讯云SaaS工具的破局之道
- CH2-Android常见界面布局
热门文章
- java 压缩js css,java YUI压缩JS跟CSS
- 蓝凌ekp开发_新华教育集团战略升级,携手蓝凌量身定制数字化办公平台
- idea文件头信息设置
- php5.5 sqlserver 2012,PHP连接SQLSERVER2012
- oracle update 数据库恢复,ORACLE update 操作内部原理
- ipa文件怎么安装到iphone_无视签名随意安装 IPA 文件
- linux 脚本 获取当前目录,Linux下获取脚本当前工作目录的一点感触
- java 网络编程 聊天_Java——网络编程(实现基于命令行的多人聊天室)
- php root 启动,php-fpm如何以root身份启动
- python input函数赋值法_大佬们 我是刚开始学python的小白 遇到这种赋值方式 实在不懂这个a+b是赋值给谁的 求解...