随笔分类 - Java
摘要:<choose> <when test="cleanStatus != null and cleanStatus.size() == 1 and cleanStatus.contains('2'.toString())"> order by update_time asc </when> <othe
阅读全文
摘要:批量修改同一个变量名 一个变量名被多个地方引用,想要同时修改可以用Ctrl+R批量替换。 这种情况会修改其他相同的文本。 可以双击变量名,变量名为选中状态时,按Alt+F6,或者在变量名上右键,选择Refactor->Rename 就可以同步时修 所有引用这个变量的名称。
阅读全文
摘要:2022-01-07 14:43:03.030 ERROR 18120 [schedule-pool-1] com.inkyi.system.service.SysLogService : Invalid bound statement (not found): com.inkyi.system.m
阅读全文
摘要:查询数据时发现一个bug,前端传了2021-12-28这个日期,转成String类型居然变成了2022-12-28. 经过各种排查,锁定问题可能出现在一个时间转换代码上 DateFormat formatter = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"
阅读全文
摘要:官方文档(Upgrading your build from Gradle 6.x to the latest) 1. 兼容性价差 以下两种方式用一种就行,就是为了排查一下有没有升级后不兼容的API 1.1 可视化 指令会生成一个网址,填个email,我没用过,大家可以研究一下 gradlew he
阅读全文
摘要:老项目用的Gradle引入依赖用的compile关键词,升级Gradle 7.x版本后,这个关键词被启用了。 查了下文档,如果项目的Jar包要对外暴露,就用api,如果引用的jar包只有本项目自己用,就用implementation。 核心,公共模块的jar包引用改成了api,但是报错了 A pro
阅读全文
摘要:分组 List<MjConfig> mjConfigs = new ArrayList<>(); // 根据Type类型分组 Map<String, List<MjConfig>> map = mjConfigs.stream().collect(Collectors.groupingBy(MjCo
阅读全文
摘要:今天在写拦截器的时候,如果判断用户未登录,直接返回一个错误码,提醒用户登录。 但是在前端接收的提示信息中,结果是 {code: "58888", msg: "???"} 这里的???应该是请登录 检查一下工具类,发现工具类里面是设置过编码 public static void writeJson(H
阅读全文
摘要:每个元素的默认值是0,long,short,double,float,都是0 因为0是基础类型的默认值
阅读全文
摘要:为了更好的追踪日志,我在项目里使用了Log4j2的MDC功能,大概的用法如下,这个用法是错误的 try { logger.info("开始处理 task:{}", task); ThreadContext.put("traceId", task.getKey()); //实际业务 }finally
阅读全文
摘要:序列化泛型 String result = "{}"; BaseResult<String> accountResult = JSON.parseObject(result,new TypeReference<BaseResult<String>>() {}); Response处理返回值 defa
阅读全文
摘要:<dependency> <groupId>javax.media</groupId> <artifactId>jai_codec</artifactId> <version>1.1.3</version> <!--system,类似provided,需要显式提供依赖的jar以后,Maven就不会在
阅读全文
摘要:curl -H "Content-Type:application/json" -X POST --data '{domainUrl=http://sso.xxxx.com}' http://inner.sso.xxxx.com:8443/ssoApis/getDomainInfo
阅读全文
摘要:解题思录 假如链表结构:A->B->C->D->E->F->G 将相邻的两个元素的指针反转,如:A->B ,变成 B->A prve = A curr = B curr.next = prve 如果B->A,那么->C的部分将丢失,需要临时变量记录C。 prve = A curr = B // 先记
阅读全文
摘要:起因: 公司新建了一个对账系统,流水的来源是在系统中埋点收集,账单部分,由业务员上传从业务方下载下来的Excel文件,初期业务量小,每个账单文件最多也就上千条数据。随着业务量慢慢增加,已经达到了上万数据,现在平均在每个账单文件为5W数据。 开始由业务员在群里反馈,文件上传了,但是文件内容并没有入库,
阅读全文
摘要:最近面试被问道TCP的三次握手和四次挥手,没准备好,回答的不流畅,趁着空闲时间,赶紧再梳理一下。 三次握手 文字描述 1.由客户端发起链接请求,TCP数据包的SYN标识位等于1,代表要建立链接。 2.服务端接收到消息后,向客户端发送TCP数据包,ACK位等于1,服务端准备好了。SNY位等于1,请求与
阅读全文
摘要:ThreadLocal 源码 ThreadLocal 提供了线程局部变量,比如我在线程A通过ThreadLocal Set一个值进去,那么在这个线程的执行过程中,我们在任何方法里都能取到这个值。 如果在这个线程中开辟的子线程里面,是取不到这个值的,ThreadLocal只能作用于当前线程。 这就涉及
阅读全文
摘要:1.下载源码 如果你的网不错,可以去GitHub上下载最新的源码 git clone https://github.com/spring-projects/spring-framework.git --depth 1 如果你的网不太好,建议走国内的Git源 git clone https://git
阅读全文
摘要:final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] tab; //当前数组 Node<K,V> p; // 当前i位置上的元素 int n; //tab总长度 int
阅读全文
摘要:1.上传本地仓库 1.1 build.gradle 项目设置 1.2 build.gradle 上传设置 1.3 项目根目录执行命令 2.上传私有仓库(参考Gradle Plugin文档,没有真正上传过) 2.1 build.gradle 项目设置和上面的 1.1 一样 2.2 build.grad
阅读全文