自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 支持多平台下Zip的读取和解压问题

如何正确读取到zip里的文件名和文件内容

2022-08-31 17:37:07 1755 1

原创 log4j2:占位符引起的内存泄漏bug

log4j2:占位符引起的内存泄漏buglog4j2使用调用现象排查手段耗时原因问题回顾log4j2使用之前用的logback,然后(抽了)换成log4j2,主要log4j2支持异步日志(基于disruptor),据说性能很高,但是用了后发现不少问题,记录下最近发现的一个严重bug调用现象访问接口的时间重复打印了两次日志,第一次是fegin返回日志,第二次是springmvc返回日志,但是发现耗时十几秒;排查手段1.开始时手段比较粗暴,直接观察日志打印时间前后时间差,发现耗时确实比较长,然后fe

2020-12-20 22:11:12 8990 2

原创 maven插件使用及dockerfile插件多模块下打包

maven-plugin使用我们知道maven除了原生支持命令如clean\compile\build\package\install等,这些是maven原生为我们项目提供任务执行功能,比如清除、编译、创建、打包、打包进本地仓库,我们此外我们还可以定制自己的插件来实现功能,比如哪些文件不打包进去,我们这里以dockefile插件为例,了解个各配置及执行流程dockerfile-maven-pl...

2019-09-15 21:37:21 6860 7

原创 SpringMVC上传文件的五种配置

我们知道web上传文件form表单要加enctype=“multipart/form-data”,而SpringMVC提供了MultipartResolver接口来让实现文件流解析。而SpringMVC提供了两种解析器CommonsMultipartResolver我们点开这个文件解析器的源码发现继承了CommonsFileUploadSupport,而再点开这类support抽象类,发现里面...

2019-09-08 22:07:14 435

原创 HttpServletRequest和HttpRequest的区别

最近好多人问我这两个啥区别,没想到有这么多不清楚。所以在这里简要说明下,如果我们点进去HttpServletRequest这个进去,发现这是一个接口,而且源码如下:```javapublic byte[] getBytes() {return StringCoding.encode(value, 0, value.length);} ...

2019-07-21 18:32:32 10681 2

原创 freemaker使用三目表达式

在使用freemaker时我们通常用<#if></#if>这种方式判断,但是遇到简单的逻辑这种写法就显得很冗杂了,所以我们一般简单逻辑用三目表达式,freemaker三目表达式和java有点不一样。如果一般jsp的el表达式如下:${a!=null&&a=='0'?1:0}但是freemaker这种写法会报错,首先因为freemaker里摒弃了null...

2019-07-21 17:14:34 2652

原创 ciglib工具 BeanCopier空指针问题

上次我们分析过spring的BeanCopier问题,这次使用ciglib时也遇到同样问题;前后对比的source实例和TargetClass,发现和上次情况不一样。然后发现TargetClass继承了父类,而source没有父类。然后用通过追踪ciglib使用流程,发现使用了ASM的获取Class信息,没有用反射。此时cglib版本2.2,后来把ciglib的版本号升级到3.5就好了。综合分...

2019-06-13 18:57:19 1207

原创 Spring工具 BeanCopier异常问题

Spring工具 BeanCopier异常问题我们经常遇到相同属性的不同类时,为了代码简洁性和可复用性,当然最重要的是节省时间,我们会用到复制这个功能,一般有普遍用的有spring、apache-commons、net.sf.cglib。当然如果时间允许可以基于反射实现此功能,下次带大家看下两种复制的性能比较。现在大多数项目用spring框架,所以本文主要来告诉大家使用spring的BeanCo...

2019-03-14 10:46:43 4521

原创 AES、DES、RSA等加密出现解密失败原因

AES、DES、RSA等加密出现解密失败原因我们在用微信支付或者其他第三方接口用对称或者非对称加密时经常会遇到明明公钥私钥都正确,可是第三方服务端还是返回解密失败解密错误原因1.本地字符串编码和加密后字节编码不对应,java中String类的getBytes方法如下 public byte[] getBytes() { return StringCoding.encode(v...

2018-12-13 10:25:06 17134

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除