logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【Apache POI 填坑日记】NoSuchMethodError: UnsynchronizedByteArrayOutputStream.builder() 排查与解决

摘要:作者分享了解决 Apache POI 导出 Excel 时遇到的 NoSuchMethodError: UnsynchronizedByteArrayOutputStream.builder() 问题的过程。该问题源于 commons-io 库的版本冲突,导致运行时加载了旧版本。文章提供了三种解决方案:推荐升级 commons-io 至 2.15.1、排除旧传递依赖(不推荐)和使用 POI

#apache
【Spring Boot 3.2 填坑日记】“虚拟线程都配置了,为什么 @Async 还是用线程池?”:Spring 异步任务与虚拟线程的兼容性实战

本文探讨了在Spring Boot 3.2和Java 21环境下使用虚拟线程(Virtual Threads)时遇到的配置问题。作者发现,虽然通过spring.threads.virtual.enabled=true配置了虚拟线程,但@Async异步方法仍使用传统线程池。分析表明该配置仅影响Web容器线程,不适用于异步任务。文章提供了五种解决方案:自定义AsyncTaskExecutor、配置Ta

#spring#spring boot#后端
【Jackson 填坑日记】“java.time.LocalDateTime not supported by default” 全场景解决方案

摘要:本文针对Jackson无法序列化java.time.LocalDateTime的问题,提供了四种解决方案:1)字段级注解(推荐快速修复);2)Spring Boot全局配置(推荐统一风格);3)手动注册模块(非Spring环境);4)自定义序列化器(复杂格式)。文章详细说明了每种方案的使用场景和实现方式,并给出Spring Boot一键配置补丁。适用于不同开发环境下的日期时间序列化需求,帮助

#java#python#开发语言
【Java 填坑日记】Name clash: 泛型擦除导致的“看似重写实则不是”编译惨案

本文讨论了Java泛型擦除导致的"Name clash"错误问题。作者在实现QuestionBankService接口时,因内部类与外部类同名导致方法签名冲突,编译器报错。文章分析了问题根源:泛型擦除后方法签名相同但参数类型不同。提出了三种解决方案:统一使用相同类型(推荐)、修改方法名(快速绕过)和使用泛型方法(进阶)。最后给出了最优方案的具体实现代码,并提供了相关参考资料。该

#java#python#intellij-idea
【Java 填坑日记】“一次诡异的内存泄漏:ThreadLocal 用完没 remove,Metaspace 被打爆”

本文记录了一次因ThreadLocal未清理导致Metaspace内存泄漏的案例。作者发现预发布环境频繁Full GC后出现Metaspace OOM,经分析是线程池复用导致ThreadLocal中的ObjectMapper未被回收,进而引用的ClassLoader和动态代理类堆积。文章提供了三种解决方案:显式调用remove()方法、使用阿里TransmittableThreadLocal或改用

#java#spring#json
【Java 填坑日记】Excel里的“1.00“存入数据库解密后,Integer说它不认识:一次 NumberFormatException 翻车实录

本文针对Excel导入数字数据时出现的NumberFormatException问题,提出了四种解决方案:1)导入时强制转整数;2)使用DecimalFormat格式化;3)解密后兼容性转换;4)全链路使用BigDecimal。文章分析了POI读取Excel数字为Double导致类型转换异常的根源,并推荐在导入阶段进行数据清洗或使用BigDecimal确保精度。最佳实践建议封装工具类统一处理数字格

#java#数据库
场景解决之Oracle数据库特殊字符或生僻字乱码

处理数据库字符集问题时,务必谨慎并充分测试任何变更。在对数据库进行结构性调整之前,确保备份所有数据,并在非生产环境中进行测试。如果你不确定如何操作,或者觉得任务超出了你的技术范围,最好咨询经验丰富的数据库管理员。

文章图片
#oracle#数据库
【Jackson 填坑日记】“java.time.LocalDateTime not supported by default” 全场景解决方案

摘要:本文针对Jackson无法序列化java.time.LocalDateTime的问题,提供了四种解决方案:1)字段级注解(推荐快速修复);2)Spring Boot全局配置(推荐统一风格);3)手动注册模块(非Spring环境);4)自定义序列化器(复杂格式)。文章详细说明了每种方案的使用场景和实现方式,并给出Spring Boot一键配置补丁。适用于不同开发环境下的日期时间序列化需求,帮助

#java#python#开发语言
场景解决之Oracle数据库特殊字符或生僻字乱码

处理数据库字符集问题时,务必谨慎并充分测试任何变更。在对数据库进行结构性调整之前,确保备份所有数据,并在非生产环境中进行测试。如果你不确定如何操作,或者觉得任务超出了你的技术范围,最好咨询经验丰富的数据库管理员。

文章图片
#oracle#数据库
【Jackson 填坑日记】“把 CLOB 直接扔给前端?MonitorLock 当场社死”

摘要: 文章探讨了Jackson序列化Oracle CLOB对象时遇到的InvalidDefinitionException问题。问题根因是Jackson尝试序列化JDBC驱动内部对象MonitorLock。作者提出三种解决方案:1) 推荐方案是使用DTO隔离驱动对象,通过类型处理器将CLOB转为String;2) 临时方案是关闭FAIL_ON_EMPTY_BEANS特性;3) 自定义ClobSe

#状态模式#java#oracle
    共 12 条
  • 1
  • 2
  • 请选择