logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Java IO三大模型(BIO/NIO/AIO)超详细总结

本文通过生活化的「烧水做饭」场景,生动讲解了Java IO模型的核心概念。首先区分了同步/异步(执行顺序)和阻塞/非阻塞(自身状态)两组关键概念,并分析了四种组合方式。然后回归技术主题,详细解析了Java三大IO模型:BIO(同步阻塞)、NIO(同步非阻塞)和AIO(异步非阻塞)的实现原理、特点及适用场景。NIO通过通道、缓冲区和选择器实现高效的多路复用,是当前高并发网络编程的主流方案。全文用通俗

文章图片
#java#nio
Spring Boot启动秒退无日志,竟藏双重致命陷阱

Spring Boot项目启动时突发静默闪退,控制台无任何异常输出。经排查发现两个关键原因:一是日志系统初始化晚于异常触发,导致无法记录错误;二是Spring Boot覆盖了JVM原生异常处理机制,而自定义处理又依赖未就绪的日志系统。最终定位到logback依赖冲突引发的NoSuchMethodError。建议注意启动时序、理解异常处理层级,并善用依赖分析工具排查冲突。该案例揭示了框架底层机制对问

文章图片
#spring boot#后端#java
MyBatis SQL执行流程详解

本文详细解析了MyBatis执行SQL查询的核心流程,重点分析了select list操作的完整执行链路。通过编程式调用示例展示了从环境配置到结果获取的全过程,并深入剖析了关键组件(如SqlSession、Executor、StatementHandler等)的协作机制。文章还通过流程图和代码解析,系统阐述了Mapper代理对象创建、SQL分发执行、参数处理及结果映射等关键环节。最后介绍了Conf

文章图片
#mybatis#sql
MyBatis 多数据库适配 “坑”:databaseId 导致启动正常、运行报错?

摘要:MyBatis 3.5.16版本前存在databaseId使用隐患,多数据库适配时若启动阶段连接异常会导致静默失败,后续执行SQL抛出绑定异常。问题根源在于VendorDatabaseIdProvider在连接异常时返回null且未校验,导致无法匹配专属SQL。该问题排查困难,可能引发生产事故。解决方案建议升级至MyBatis 3.5.16+,该版本已修复此问题,在连接异常时会直接抛出异常阻

文章图片
#mybatis#java#spring boot
还在手写 DTO 转换?Spring Boot + MapStruct 让对象映射效率翻倍

本文介绍了Spring Boot开发中对象映射的高频场景及传统方式的痛点,重点推荐使用MapStruct作为编译期对象映射工具。通过对比手动set/get方法和反射工具的不足,阐述了MapStruct基于编译期生成代码的优势,包括高性能、类型自动转换、编译期校验等特性。文章详细展示了MapStruct的配置方法,包括Maven依赖和IDE插件安装,并提供了实际应用示例,说明如何通过注解驱动实现DT

文章图片
#spring boot#后端#java
spring-boot 升级版本引发的灾难

摘要:Spring Boot版本升级中,从1.x直接升级到2.x引发生产事故,主要问题包括JSON时间戳序列化默认值变更和依赖冲突(如easyExcel与poi版本不匹配)。正确升级需区分版本类型:修订版(Patch)建议及时升级,次版本(Minor)优先兼容处理,主版本(Major)需谨慎权衡收益与风险。升级核心在于"稳进"而非"追新",应充分测试验证,规

文章图片
#spring boot#spring#java
Java ThreadLocal取不到值的三种原因

ThreadLocal 取值为 null 的三大原因解析 线程隔离问题:ThreadLocal 变量是线程绑定的,不同线程操作同一 ThreadLocal 会导致取值失败。例如线程A set 的值,线程B get 会返回 null,这是最常见的误用场景。 类加载器隔离问题:当同一个类被不同类加载器加载时,会生成不同的 ThreadLocal 实例,导致 set/get 操作的不是同一个对象。典型场

文章图片
#java
Spring Boot 使用 PageHelper 分页异常:排序引发的“隐形坑”全解析

做Spring Boot项目开发的小伙伴,大概率都用过PageHelper做分页查询——毕竟它简洁高效,一行代码就能实现分页,之前项目里一直用得顺风顺水,从没出过错。可就在昨天,分页突然“罢工”了,排查了大半天才找到根源,今天就把这个踩坑经历分享出来,帮大家避开这个隐形陷阱!

文章图片
#spring boot#java#mybatis
踩坑实录!MySQL JOIN+特定条件,竟让生产环境数据“凭空消失”?

今天遇上了一件郁闷的事:生产环境有个导出接口,反馈说查出来的数据总是少一部分,明明后台列表能正常看到所有数据,数据库里也确认有对应数据,可导出文件就是“漏数”。更奇怪的是,测试环境用相同的SQL、相同的测试数据,查询结果完全正常,没有任何数据丢失。

文章图片
#mysql#java#spring boot
Java IO三大模型(BIO/NIO/AIO)超详细总结

本文通过生活化的「烧水做饭」场景,生动讲解了Java IO模型的核心概念。首先区分了同步/异步(执行顺序)和阻塞/非阻塞(自身状态)两组关键概念,并分析了四种组合方式。然后回归技术主题,详细解析了Java三大IO模型:BIO(同步阻塞)、NIO(同步非阻塞)和AIO(异步非阻塞)的实现原理、特点及适用场景。NIO通过通道、缓冲区和选择器实现高效的多路复用,是当前高并发网络编程的主流方案。全文用通俗

文章图片
#java#nio
    共 26 条
  • 1
  • 2
  • 3
  • 请选择