
工具
文章平均质量分 57
影落离风
这个作者很懒,什么都没留下…
展开
-
常用redis-lua脚本
在redis中查询以xxx为前缀的key的数量原创 2023-10-16 11:21:31 · 975 阅读 · 0 评论 -
对视图模型构造相关参数的轮子
前言清明放假没事在家写一些常用的轮子,以便减少一些重复繁琐的编码工作。话不多说,继续往下看有时我们的接口数据返回给前端或者导出为excel时,需要给相关值带单位(kg/立方米/%等)、或保留小数位等。尤其是一些统计类的报表,值特别多、单位也就贼多了。做法查询时在sql中拼接。给sql添加了好多无聊的字符,看起来都不好看,维护性不好,看起来都头疼业务代码中循环拼接。这也很麻烦交给前端回显时去拼接。前端有可能要骂娘想法既然是面向对象编程,那最好就是有维护一个视图对象,供我们返回到前端一原创 2021-04-03 14:10:30 · 138 阅读 · 0 评论 -
利用反射对层级对象取其某层对象的某个值,可忽略层对象不存在
前言业务中取对象某个值时,经常会遇到对象不存在。当然只有一层对象嵌套的时候,使用Optional.ofNullable是最简单的。那要是我的对象嵌套了5层、10层,别惊讶,千奇百怪的业务总有会遇到的。要取最底层的某个值,那Optional就要写老长一串了,这就比较头疼了。想法还是利用反射,一层一层剥开你对象的心,看Ta是不是真心。如要拿到a对象中有个b属性对象中有个c属性的值,可以传字符串“b.c”构造get方法利用反射获取对现象值为什么说还是“还是利用反射”呢??看过我博客的人都知道,我的很多轮原创 2021-04-03 14:45:38 · 335 阅读 · 0 评论 -
大数据量excel含图片导出解决方案
前言公司存在很多excel含图片导出,因为提供给客户的excel可能还会打印出来,所以图片不能存链接。真坑!!!一步步解决原理使用这个SXSSFWorkbook进行excel导出,不了解的可以看我的这个博客你一定没用过最简单的使用SXSSFWorkbook快速导出百万条数据异步导出使用异步导出方式,用户点击导出后后台自动运行导出,无需用户等待,然后有个任务列表,导出完成后用户可以回来点开下载压缩导出建议压缩图片导出:因为压缩图片后导出可以支撑更多的数据量,但还是因服务器内存而定。原创 2021-01-09 17:51:01 · 780 阅读 · 1 评论 -
大量图片数据导出为excel导致内存溢出解决方案落地
前言目前我们公司项目使用该方案已实现:导出含有上G图片数据的excel,内存占用在60~70mb。这也是这个博客实现的目标。如果你现在遇到导出excel含图片有多大磁盘占用,就会有多大的内存占用问题,那你就来对地方了!继续接着前面的问题研究 大数据量excel含图片导出解决方案前面说使用分页导出解决,但是对于客户使用体验来说,也是很麻烦。查一条记录可能还得打开多个excel,所以能放在一个excel里对客户来说还是很舒服的。那就还是之前的问题,使用SXSSFWorkbook窗口操作图片没原创 2021-01-30 20:29:22 · 1586 阅读 · 2 评论 -
生成9mb、10mb、20mb、30mb的星云图片,常用于图片测试
前言在开发中经常会遇到图片上传问题 测试5mb、10mb、20mb等的图片上传时间 测试对10mb以上的图片限制上传 但是这么大的图片也不好找或者是我们想要一个50mb左右的图片,怎么可以快速简单的做出来??那你就来对地方了!!图片资源该图片资源托管于七牛oss 9mb图片链接:http://qn.minwk.top/img/xingyun0001-9mb.jpg 16mb图片链接:http://qn.minwk.top/img/xingyun0001-1原创 2020-12-24 09:39:35 · 13842 阅读 · 1 评论 -
最简单的接口重复请求处理方法
前言常见的业务处理中,我们会遇到用户提交数据时出现重复的数据,可能出现:用户重复点击提交按钮接口被别有用心之人恶意请求其它可能出现的问题网络或程序崩溃解决接口一定要保持对调用方的不信任在重复请求处理中,我们的想法用户在较短时间内,可能几秒内重复提交,可以给用户提示“重复请求”某些接口需要处理在执行业务方法前就知道是否是重复请求,减缓服务器压力知道当前用户和用户请求的接口,这样才能针对用户做重复判断结合以上想法,我们应该能想到spring aop什么是aop面向切面编程,原创 2020-08-31 18:10:32 · 4398 阅读 · 1 评论 -
你还不知道吗?这里有最简单的使用Java进行文件加密
前言 字节流运算实现文件的加密解密1.0 字节流运算实现文件的加密解密2.0 如果没看的话,可以去飞速的浏览一下,方便这篇博客的理解(我不会告诉你,我是让你帮我的博客增加点击量的)好,相信你已经过去看了一下。我是相信你的哦!那么好,通过对前两篇博客的理解,我便可以开发出一个工具可实现对文件的深加密这就是这篇博客你还不知道吗?这里有最简单的使用Java进行文件加密要说的可制作jar工具包用来对文件或文件夹进行加密解密,此处点题。好处 可对文件进行深加密原创 2020-07-17 14:53:01 · 419 阅读 · 0 评论 -
字节流运算实现文件的加密解密2.0
前言 在前一篇博客《字节流运算实现文件的加密解密1.0》里介绍了实现文件的加密解密的原理。因为读取文件方法使用的是FileInputStream对文件加密时效率较低,优化为使用BufferedOutputStream提升效率。 遗留的思考:字节运算超出范围,但还是可以正常加密解密。 简述使用BufferedInputStream提升读取效率/** * 获取文件的byte数组 * 在{@link FileEncryptAndDecryptSalt_1#read原创 2020-07-04 18:21:23 · 892 阅读 · 0 评论 -
字节流运算实现文件的加密解密1.0
简介 byte:Java中基本类型之一,值域为-128~127 在Java中所有文件都可以使用IO以字节流的方式进行读写; 常见使用:文件复制 原理 加密 获取文件的字节码数组然后对其进行加盐运算,将运算后的字节码信息生成新的文件。因为文件的字节信息已被修改,所以生成的文件跟原来的文件已经相差很远,可称其为加密文件。 解密 读取加密文件中的字节信息,进行去盐运算,可以得出原文件的字节信息,然后输出为解密文件=原文件。 字节流读取与写入使用File原创 2020-06-28 15:21:37 · 1067 阅读 · 0 评论 -
如果你看烦了常用编程字体,不如试试这一种
在搬砖过程中,你可能会看烦了常用字体、或者觉得它们都不好看;像我就喜欢纤细、柔和的字体,不喜欢那种加大加粗的感觉;接下来我要介绍的mplus-fonts字体,简称m+字体,它就蛮符合我的需求。m+ courier new simhei JetBrainsMono 仔细对比就可以发现差异,m+字体相比其他字体更加柔和、优雅,更像是具有一种朦...原创 2020-04-14 15:56:58 · 570 阅读 · 0 评论 -
Stream-流式处理的常用操作你GET到了吗?
Java8的新特性 对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。 借助于同样新出现的Lambda表达式,极大的提高编程效率和程序可读性。 提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使...原创 2020-03-19 18:57:10 · 728 阅读 · 0 评论 -
最常见的Optional操作
Java8的新特性 Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。 Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。 Optional 类的引入很好的解决空指针异常。 好处 可以对...原创 2020-03-18 16:08:57 · 1661 阅读 · 2 评论 -
spring cloud gateway中修改响应体,保证返回体是完整的
1. 我的版本: spring-cloud:Hoxton.RELEASE spring-boot:2.2.2.RELEASE spring-cloud-starter-gateway 2. 问题:之前试过一些方法拦截到了返回体,但是第一次的请求返回体参数输出是断开的,后来找到方法使其完整输出。import io.netty.util.ReferenceCou...转载 2019-12-21 16:01:50 · 4518 阅读 · 4 评论 -
spring cloud gateway中读取请求参数
1. 我的版本: spring-cloud:Hoxton.RELEASE spring-boot:2.2.2.RELEASE spring-cloud-starter-gateway 2. 请求日志import lombok.extern.slf4j.Slf4j;import org.springframework.cloud.gateway.filter.G...原创 2019-12-20 18:35:54 · 5751 阅读 · 4 评论 -
java中推送异常消息到钉钉群
实现在Java项目运行中出现异常信息及时推送到钉钉群,或推送其他通知类信息;主要工具包:package pers.niaonao.dingtalkrobot.util;import com.dingtalk.api.DefaultDingTalkClient;import com.dingtalk.api.DingTalkClient;import com.dingtalk.api...原创 2019-08-21 14:38:42 · 3505 阅读 · 0 评论 -
springboot中实现ResponseBodyAdvice接口在项目中统一处理修饰返回体
如果你有遇到此问题,相信我这篇博客可以帮你减少一部分工作量,让你专心于业务代码的实现。在项目中接口里总是会遇到这样一个问题,每次接口返回json数据都要return自己建立的公共返回体。如我的每个接口都要写这样一句话,虽然就一句,但是我很懒,尤其是重复的代码,我真的不想再写第二遍。然而当时也没有什么更好的方法,只能这样一遍一遍的去写。return new ResponseRe...原创 2019-07-09 17:32:23 · 6389 阅读 · 0 评论 -
pojo转vo更简便、更优化
在项目中使用pojo和vo(返回给前端或第三方接口的视图),会经常遇到pojo转vo的问题。之前总是以set方式去装配,但是遇到多个参数去set就会很麻烦。然后本人结合网上资料,使用CommonBeanUtils.copyProperties去对单个pojo转vo实现简化。ps.pojo字段与vo字段形式、类型保持一致我这个人真的是特别懒的人,能少些代码尽量少写代码;包括下面查出来的p...原创 2019-07-08 17:16:22 · 2172 阅读 · 2 评论 -
将项目中的jar文件生成pom文件
1. 首先在pom中导入以下包<dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastJson</artifactId> <versi...转载 2019-06-13 18:36:33 · 3215 阅读 · 0 评论 -
如何将自己的电脑做成服务器
第一步:先去 https://www.ngrok.cc/ Sunny-Ngrok内网转发注册一个账号,可以免费购买一个服务器然后填写东西,映射你项目的ip然后会有一个隧道id先放着,一会用。第二步:下载frp客户端双击bat将刚才的隧道id粘到此处,回车这就成了最后访问你的域名如我的:http://mwk520.free.ngrok.原创 2017-12-26 13:56:49 · 14268 阅读 · 1 评论 -
如何调用别人的接口或网络上的接口
java工具类import java.io.IOException;import java.util.Map;import org.apache.http.HttpEntity;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.methods.Clo原创 2017-12-25 22:50:22 · 9060 阅读 · 4 评论 -
java中对于excel的操作
package com.huachan.common.utils;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputSt...原创 2018-05-09 18:37:08 · 306 阅读 · 0 评论 -
请求过滤与拦截验证
filter拦截工具package com.*.utils;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;...原创 2018-05-10 17:01:09 · 347 阅读 · 0 评论 -
java中二维码的生成与解析
pom文件<!-- https://mvnrepository.com/artifact/com.google.zxing/core --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</art...原创 2018-05-11 15:58:04 · 266 阅读 · 0 评论 -
HttpClient工具的应用
pom文件<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcl...原创 2018-05-11 18:29:57 · 231 阅读 · 0 评论 -
对于根据图片url的转base64,下载图片的工具类
import java.io.ByteArrayOutputStream;import java.io.DataInputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.Outpu...原创 2018-05-18 18:24:13 · 2098 阅读 · 0 评论 -
java中对于邮箱和手机号的校验
/** * 对手机号与邮箱的简单校验 * @author 闵渭凯 2018年5月9日 */public class checkUtil { /** * 邮箱校验 * * @param email * @return */ public static boolean isEmail(String email) { try { // 正常邮箱 //...原创 2018-05-18 18:26:06 · 3630 阅读 · 0 评论 -
properties配置文件读取工具
package com.huachan.common.utils;import java.io.IOException;import java.io.InputStream;import java.util.NoSuchElementException;import java.util.Properties;import org.apache.commons.io.IOUtils;...转载 2018-05-25 18:02:40 · 1078 阅读 · 0 评论 -
java的aes加密解密,js的aes加密解密
java工具类import java.math.BigInteger;import java.security.spec.AlgorithmParameterSpec;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.spec.IvParameterSpec;import ja...原创 2018-05-22 11:34:31 · 338 阅读 · 0 评论 -
win10家庭中文版添加Hyper-V虚拟机
Hyper-V之前一直专属Windows Server平台,从Windows 8系统开始,个人用户才能使用Hyper-V,不过令人遗憾的是,只有Windows专业版及以上的系统才能使用Hyper-V,Windows家庭版是不能使用的,这个政策一直延续到现在的Windows 10。很多有Hyper-V需求的用户因此而升级为Windows 10专业版。如果仅仅想用Hyper-V而升级为专业版...转载 2018-10-31 19:27:57 · 10972 阅读 · 10 评论 -
springboot发送邮件
相信使用过Spring的众多开发者都知道Spring提供了非常好用的JavaMailSender接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。下面通过实例看看如何在Spring Boot中使用JavaMailSender发送邮件。快速入门在Spring Boot的工程中的pom.xml中引入spring-boot-starter-mail...转载 2018-11-04 20:29:06 · 258 阅读 · 0 评论 -
在Java-web中实现图片上传到ftp图片服务器
第一步:web页面 上传图片: 第二步:建一个上传的工具类package com.huacan.common.utils;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream原创 2017-12-06 23:38:58 · 3854 阅读 · 2 评论