- 博客(15)
- 收藏
- 关注
原创 Mybatis拦截慢SQL日志记录
背景通过分析MySQL慢查询日志不方便,利用数据源不直观,无法了解上下文调用关系要求通过可配置化的操作实现日志在控制台的输出和在数据库中记录本文利用SpringBoot和Mybatis,基于Mybatis Interceptor实现慢SQL拦截日志记录和打印输出一、服务配置# slow-sql# 基于interceptorslow-sql-interceptor.enabled=...
2020-04-24 11:32:58 4431 4
原创 Mybatis拦截结果集实现字段加密
业务背景在实际开发过程中,业务上会有很多数据交互和传输,其中必然存在一些敏感数据,不能直接明文传输,需要进行加密前端与后端数据交互时上下游子系统之间交互时本文基于Mybatis结果集ResultSetHandler拦截实现字段加密一、声明注解用于指定加密字段@Documented@Target({ElementType.FIELD})@Retention(Retentio...
2020-04-24 10:35:37 3311 2
原创 Mybatis大数据量Excel导出避免OOM解决方案
一、背景动态数据导出是一般项目都会涉及到的功能。它的基本实现逻辑就是从数据库查询数据,加载到内存,然后从内存创建excel或者csv,以流的形式响应给前端,通过浏览器下载到本地然而一旦数据量太大,达到十万级,百万级,千万级,大规模数据加载到内存必然会引起OutofMemoryError如何解决,本文提供了完整的解决方案二、如何避免OOM1、产品角度我们为什么要导出这么多数据呢?这...
2020-04-09 10:40:33 4489 4
原创 MySQL主从复制原理解析与最佳实践
一、主从复制1、复制的基本原理主要涉及三个线程:binlog 线程、I/O 线程和 SQL 线程binlog 线程 :负责将主服务器上的数据更改写入二进制日志(Binary log)中I/O 线程 :负责在主服务器上读取二进制日志,并写入从服务器的中继日志(Relay log)SQL 线程 :负责读取中继日志,解析出主服务器已经执行的数据更改并在从服务器中执行2、复制的基本原则...
2020-04-09 10:19:38 340
原创 MySQL批量插入1000w条数据
一、概述在一些实际的测试、运维过程中,往往需要向数据库插入大量数据,利用存储过程是一个不错的选择本次采用MySQL5.7,模拟实际批量插入1000w条随机数据二、创建库 mysql -uroot -p密码 create database bigdata; use bigdata;三、创建表drop table if exists user;create table user...
2020-04-09 10:10:10 1779
原创 基于Zxing的二维码生成和识别
一、添加依赖<!--导入zxing依赖--><dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.2.1</version></depende...
2020-04-08 17:42:44 465
原创 SpringBoot使用JWT实现登录拦截验证
一、定义JSON Web Token(JWT)是一个开放的标准(RFC 7519)定义了一个紧凑且自包含的方式,用于在各方之间以JSON对象安全地传输信息信息可以通过数字签名进行验证和信任可以使用秘密(使用HMAC算法)或使用RSA的公钥/私钥对来对JWT进行签名二、请求流程1、用户在浏览器中输入用户名、密码进行登录验证2、服务端登录验证3、成功则返回生成的JWT,失败则抛...
2020-04-08 17:34:35 2061
原创 SpringBoot发送注册激活邮件(附HTML模板)
效果展示一、准备工作需要开启POP3、SMTP邮件服务需要设置客户端授权码以网易邮箱举例如下:二、发送模板邮件1、添加依赖<!--mail--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-b...
2020-04-08 15:38:51 4493
原创 SpringBoot定时任务
一、@Scheduled默认是串行的,单线程,当开启多个任务时,任务的执行时机会受上一个任务执行时间的影响 @Configuration @EnableScheduling //开启定时任务 public class ScheduleTask { //每10秒执行一次 @Scheduled(cron = "0/10 * * * * ?"...
2020-01-13 16:27:41 298
原创 SpringBoot全局异常处理
一、自定义数据统一返回对象/** *@Author thailandking *@Date 2019/12/1 11:58 *@LastEditors thailandking *@LastEditTime 2019/12/1 11:58 *@Description 统一返回对象 */@Datapublic class Response implements Serializab...
2020-01-13 16:21:47 141
原创 Java版二叉树序列化与反序列化
简介先序序列化与反序列化二叉树代码实现public class SerializeTree { public static void main(String[] args){ TreeNode n1=new TreeNode(1); TreeNode n2=new TreeNode(2); TreeNode n3=new TreeN...
2018-11-26 21:52:31 342 2
原创 Java版数据结构之八大排序算法
排序算法简介交换排序:冒泡排序、快速排序插入排序:直接插入排序、希尔排序选择排序:简单选择排序、堆排序归并排序基数排序对比代码实现冒泡排序//冒泡排序 public static void sort(int[] arr){ if(arr==null||arr.length&amp;lt;=0){ return; } ...
2018-11-04 14:28:16 860
原创 Java版数据结构之二叉树操作大全
简介前序遍历、中序遍历、后序遍历、层序遍历前序查找、中序查找、后序查找获取二叉树结点数量获取二叉树的深度判断是否为满二叉树获取二叉树最大宽度判断是否为完全二叉树代码public class MyTree { int data;//结点的值 MyTree leftTree;//左子树 MyTree rightTree;//右子树 public ...
2018-10-31 22:34:07 229
原创 VMware安装虚拟机教程
简介安装虚拟机安装VMware Tools工具简单设置虚拟机,利于使用一、安装虚拟机第一步,新建虚拟机第二步第三步第四步第五步第六步第七步第八步第九步第十步第十一步第十二步第十三步第十四步第十五步第十六步第十七步-开启虚拟机第十八步第十九步第二十...
2018-10-31 17:56:18 376
原创 springboot使用@data注解,减少不必要代码
一、idea安装lombok插件二、重启idea三、添加maven依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version&...
2018-10-22 16:41:28 150759 20
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人