Live My Life

一入Java深似海

工具使用踩坑篇:IDEA-Optimizing-Imports大坑

足足踩了两次坑 第一次: 可以看到fixedincome引的三个包被干掉两个 提交方式为IDEA的"推送并提交" 第二次 也就是说如果是通配符导入,大于5个的导入会被合并,小于5个的导入会被拆分为多个单导入 看下主要变更部分: :::info 首先怀疑是通配符退化,但是根据idea的auto import配置(前图) 根据退化逻辑,假设是退化通配没有生成对应的......

ClassPathResource不能正常获取文件资源

今天在线上部署jar包之后,发现在本地正常的ClassPathResource不能正常获取文件了,提示文件找不到 12Resource resource = new ClassPathResource("data/test/txt"); String path = resource.getFile().getPath()); 12Caused by: java.io.F......

mapstruct分析IDEA构建、启动流程的意义

今天使用mapstruct遇到了很奇怪的问题,我构建某个包,发现target/classes目录生成了XConvertor的实现类class 此时可以正常编译启动,但是我此时又单独install该包,发现有生成了和classes同级的generated-sources/annotations目录 里面是XConvertor的实现类java文件,导致项目编译提示类重复? 将target删除之......

EasyExcel注意事项和发现bug

注意事项: 直接写入可以和@Excelproperty配合,就可以根据注解的value定位 但是对于填充,注解可以不使用(使用也无效),但是填充占位符必须在excel模板文件中指明,所以如果对于单元格有数据校验的,不支持输入{.格式},那么就需要去掉数据校验 但是去掉校验的单元格,在导出后还是没有数据校验或下拉框,所以就有问题,这个时候只能手动加下拉框。 同时碰到了一些问题 :::succe......

504超时-CPU100%-内存泄漏-问题简要排查

前端请求F12: 根据错误码:上游前端(网关)未接收到下游服务端返回的数据,这里是网关接收数据超时了,而不是后端超时 后端仍在死循环运行中或死锁 打开arthas,使用thread -b查看死锁线程 注意到服务器CPU飙升,top发现确实是Java存在异常: thread -n 3,查看最占用CPU的线程,发现前三个都是同一逻辑调用,下面只站是一个 1234567891011121......

信创过程中Char和索引问题

继上次索引优化之后,线上出现一个问题,char11 in char10,因为空格不一致,不加trim所以不可能in到数据? 但是实际上会忽略空格吗? (cust的cno为11,brrd的cust字段为10) 提前结论: 暂时先不改,因为这里是数据库执行,不确定应用层执行还是否能查出? 另外需求:trim存在导致索引失效(SQL特性,不管什么数据库) 实践: 将msd这里的trim去掉,......

Explain执行计划分析和表驱动

外网SQL 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061SELECT a.* FROM ( SELECT b.* FROM ( SELECT DISTINCT SA.BR, S.SECID, ......

误导性日志:三方中间件启动失败日志和普通异常

今天启动报了ClassNotFoundException,但是这个类是位于本工程内的,怎么会报呢? 如果只看第二张图,很容易迷惑,除非看完整堆栈或者是第二张图的出处堆栈,发现最是hacelcast中抛出的,也就是这个并不是Spring抛出的,而是Hazelcast报错,抛出ClassNotFound,但是这个基础异常是基于Hazelcast的使用的,所以要看异常的上下文也就是场景。 异常......

关于对Java语法糖的理解

switch 在1.8支持case String类型,class中其实是根据hashCode和equals判断的,为什么需要equals,因为仅凭hashCode可能发生哈希碰撞。 泛型,没有泛型对应的class类型,java阶段的泛型都会在class阶段擦除,如HashMap会被擦除为Hash Map.Class,而...

MybatisPlus(类型控制器TypeHandler的常规应用)

通过继承BaseTypeHandler,想要实现和JdbcTemplate回调处理相同的效果,比如根据英文字符串转中文 DTO: xml指定字段: 最后发现没生效,原因是必须指定handler的扫描路径 加入后就可以注册上handler了,但是对于中英文转换填充这种都是属于业务处理,不应当写在同一基础架构中,所以配置文件加范围不符合统一维护原则,维护在原扫描范围内又不符合代码职责原则。......