
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文全面解析了SpringBoot内置容器的使用要点:1. 支持三大容器:Tomcat(默认)、轻量级Jetty和高性能Undertow,分别适用于常规项目、微服务和高并发场景;2. 切换容器需先排除tomcat依赖再引入目标容器starter;3. 常见问题包括未彻底排除默认容器、多容器冲突等;4. 建议普通项目保持Tomcat,特殊场景按需切换。文章提供了Maven/Gradle的完整配置示例

↓Spring 启动↓扫描 @Component / @Service / @Aspect↓创建 Bean↓AOP 判断是否需要代理↓生成代理对象↓放入容器↓你 @Autowired 拿到的是代理对象Spring 是“容器”注解是“标记”AOP 是“Bean 创建阶段的加工逻辑”你再回头看@Aspect@Before哦,原来如此。

在 Spring Boot 开发 REST 接口时,经常会看到:很多人疑惑:这篇文章直接讲重点。表示:操作成功,并返回数据表示:资源不存在表示:请求参数错误表示:操作成功,但不返回数据表示:服务器内部异常表示:新资源创建成功方法定义:必须传入一个:这个表示:含义:因为 REST 规范中:所以必须指定访问路径。作用:方法签名是:必须传参数。如果不想返回数据,不要调用 ,而是调用:四、.body(us

但真正深入排查后你会发现,大多数所谓的 “Lombok bug”,本质上都和。掌握这个规则,你在 Spring 体系里的数据绑定问题会减少 90% 以上。通过 MyBatis 或 Spring 的映射规则转换。是字段命名破坏了 JavaBean 规范的一致性。Java 里的“属性名”并不等于“字段名”。属性名是由 getter 方法推导出来的。任何一步命名不规范,都会导致整条链路失效。有关,而不是

本文详细解析了 JVM 中的 CMS(Concurrent Mark Sweep)垃圾收集器。CMS 以最小停顿时间为目标,采用标记-清除算法,主要作用于老年代,最大特点是能与用户线程并发执行。其工作流程分为初始标记(STW)、并发标记、重新标记(STW)和并发清除四个阶段。优点是低停顿和响应速度快,适合Web服务等对延迟敏感的系统;但存在内存碎片、CPU资源敏感、浮动垃圾、易触发Full GC等

本文系统讲解了JVM垃圾回收算法,首先介绍了三大基础算法:标记-清除(简单但产生内存碎片)、标记-复制(高效但浪费空间)和标记-整理(无碎片但成本高)。然后重点分析了JVM采用分代回收的原因——基于"大多数对象短命"的经验规律,将堆分为新生代(使用标记-复制算法)和老年代(使用标记-清除或标记-整理算法)。文章还简要提及了常见垃圾回收器,并总结了面试常见问题,指出分代与算法组合是JVM高性能的关键

本文深入讲解了JVM判断对象可回收性的机制。核心结论是:对象如果无法从GC Roots访问到,就可以被回收。JVM采用可达性分析算法而非引用计数法,因为后者无法解决循环引用问题。GC Roots包括虚拟机栈局部变量、方法区静态变量等"永久起点"对象。判断过程分为两步:首先检查可达性,然后判断是否需要执行finalize()方法(对象可在此自救)。文章还介绍了四种引用类型(强、软、弱、虚)及其回收特

本文系统讲解了JVM内存泄漏的排查与解决方法。首先定义了内存泄漏的本质是"对象无用但仍被引用导致无法GC回收",表现为内存持续增长、Full GC后内存不降、最终OOM。重点介绍了完整的排查流程:确认内存曲线→触发GC观察→生成Heap Dump→MAT分析→定位代码→修复问题,并详细说明了jmap、jstat、VisualVM、MAT等工具的使用。列举了集合未清理、静态变量、线程池未关闭等常见泄

本文全面解析了SpringBoot内置容器的使用要点:1. 支持三大容器:Tomcat(默认)、轻量级Jetty和高性能Undertow,分别适用于常规项目、微服务和高并发场景;2. 切换容器需先排除tomcat依赖再引入目标容器starter;3. 常见问题包括未彻底排除默认容器、多容器冲突等;4. 建议普通项目保持Tomcat,特殊场景按需切换。文章提供了Maven/Gradle的完整配置示例

本文深入探讨了Spring Boot中控制Bean注入顺序的本质问题。核心观点是:Spring的设计原则是依赖驱动而非顺序控制,构造器注入之所以"看起来"能解决顺序问题,是因为它显式表达了依赖关系,使Spring能正确构建依赖图。文章指出了构造器注入适用的场景(真实业务依赖、避免隐藏依赖、暴露循环依赖)和无法解决的问题(无依赖关系的顺序需求、责任链模式等)。同时介绍了多种顺序控制手段(@Order








