



Spring Framework和Spring Boot已然是当下构建Java Web应用的首选。其强大的容器和应用特性,再加上优异的第三方技术整合能力,使得Spring Framework和Spring Boot稳坐Java Web应用开发的头把交椅。在出版《Spring Boot 源码解读与原理分析》之后,不少读者提出,其阅读难度较大,对部分还不完全熟悉Spring Framework和Spring Boot的读者而言更是难上加难。为此,作者经过深思熟虑,并考虑到在撰写期间Spring Framework与Spring Boot的版本更新,决定以Spring Framework 6.x与 Spring Boot 3.x为基础,重新编写一套从零开始学习的系列书——《Spring Boot 3:入门与应用实战》(后文简称为入门篇)、《Spring Boot 3:高级与架构设计》(后文简称为高级篇),旨在帮助读者了解、掌握Spring Framework与Spring Boot,并对新版本中引入的核心特性进行讲解。作者期望那些刚刚完成Java Web学习的初学者能够借助本书学习Spring Framework与Spring Boot,同时希望那些实战经验尚浅的开发者能够利用本书巩固自身基础并弥补知识空缺。此外,作者也希望那些致力于深入研究的进阶学习者能够借助本书进一步深入了解Spring Framework与Spring Boot的全貌。
本书分为3个部分,分别介绍Spring Framework的IOC容器高级机制与原理(第1~3章)、AOP高级特性与原生设计(第4~5章),以及前沿技术与新版本特性(第6~8章)。具体安排如下。
• 第1章讲解Spring Framework中的核心设计思想“元编程”“元信息”等,并引出IOC容器中的具体实现BeanDefinition与BeanDefinitionRegistry。
• 第2章重点讲解Spring Framework核心容器中的高级机制,包括Environment、后置处理器、SPI机制,以及编程式驱动IOC容器等高级使用方式。
• 第3章从一个Bean的源头开始挖掘和探索Bean的全生命周期,使读者可以更好地理解IOC容器中重要组件的来龙去脉,同时对其中的设计理念有更深刻的认识。
• 第4章介绍了一些AOP相关的高级特性,包括TargetSource的设计、切入点表达式的更多语法、引介机制等。
• 第5章对Spring Framework原生设计和实现的AOP模型进行详尽的讲解。从核心模型和组件出发,阐述原生AOP机制的API之间如何协作,以及原生AOP机制如何与AspectJ融合与适配。
• 第6章从LLM的起源出发,重点讲解Spring拥抱AI的全新框架Spring AI的使用。结合多种常见的生成式AI使用场景,讲解和演示Spring AI如何完成大语言模型的对接,以及如何完成AI与应用的集成和配合。
• 第7章介绍Spring Framework 6.x的新特性,主要包含AOT编译、GraalVM的支持、可观察性的使用等。
• 第8章介绍Spring Boot 3.x的新特性,包括版本升级要求、配置属性变动、原生镜像制作等。
本书不是一本关于Spring Boot的入门图书,所以要求读者至少了解Spring Boot和Spring Framework,并有基本的使用经验。此外,还希望读者掌握一定的JavaSE、JavaEE的相关基础。
因此,本书更适合以下人群阅读:
• 会使用Spring Boot、Spring Framework,想要掌握框架底层核心原理的读者;
• 能熟练使用Spring Boot,但没有深入挖掘其深层次特性和高级使用功能的读者;
• 技术广度足够,但深度有限的进阶者;
• 职业规划目标为技术总监、架构师等高级技术岗位的进阶者;
• 被Spring Boot、Spring Framework问题困扰的求职者;
• 有意向对Spring生态进行深入探究的研究者。
本书中出现的部分名词受作者主观表述方式的影响,可能会出现多种不同的叫法,以下是部分专有名词的映射关系。
• Spring Framework:指Spring框架,简称Spring。
• WebMvc:指Spring MVC、Spring WebMvc。
• Bean:Spring Framework中管理的组件对象(概念)。
• bean:容器中真实存在的组件对象实例(具体)。
• IOC容器:泛指ApplicationContext。当上下文在讲解BeanFactory时,IOC容器则指代BeanFactory。
• Web容器:Servlet容器与NIO容器的统称,不仅限于Tomcat、Jetty等Servlet容器。
• LLM:大语言模型的英文缩写。大模型等简称同样指的是LLM。
在展示测试代码或框架源码的片段中,考虑到部分代码的篇幅和长度问题会受纸质图书的呈现方式影响,会对部分代码进行折叠或换行处理,对涉及源码的部分视情况进行省略或删减。读者在阅读时可适当结合IDE阅读,以获得最好的阅读体验。
在编写本书期间,Spring Framework的最新正式版本为6.1.x,Spring Boot的最新正式版本是3.2.x。而时至定稿日,Spring Framework和Spring Boot的版本已分别更新到6.2.x与3.4.x。考虑到Spring Framework 6.2版本与Spring Boot 3.4中更新的特性没有特别值得讲解的部分,最终本书定稿时所采用的Spring Framework基准版本为6.1.15,Spring Boot基准版本为3.2.12。在没有特别说明版本时,本书中引用的源码均基于Spring Framework 6.1.15 与 Spring Boot 3.2.12。
由于Spring Boot和Spring Framework在当下的应用范围甚广,升级到新版本后更是出现大量改动,版本迭代速度较快,加之作者本人的技术水平有限,因此书中难免出现错误。作者虽然在编写本书时已经对每个知识点反复研究、测试和推敲,力求讲解得尽可能正确、精准、易懂,但还是不敢保证所有内容都没有错误。如果读者发现本书中有任何错误,或者想给本书及作者提供任何建议,欢迎通过以下方式与作者取得联系,以便及时修订本书。
• 邮箱:LinkedBear@163.com。
• 微信公众号:Spring引路熊导师。
• GitHub博客:http://site.linkedbear.top。
本书的勘误情况将发布在微信公众号与GitHub博客中,请各位读者及时关注,以便获取最新的更新资讯。
本书附带的所有测试代码已托管至GitHub平台,欢迎各位读者下载参考。GitHub仓库地址:https://github.com/LinkedBear/spring6-boot3-projects-epubit。
创作本书是承接入门篇的又一次挑战,面对升级和高级原理的解析,我既胸有成竹又审慎稳健。高级篇的高专业性和前瞻性,使我更加严谨地对待本书的每一个知识点和特性的讲解和剖析,同时还要做到尽可能易懂。本书的难度相对较高,创作本书的过程更是漫长且艰巨,想先对自己说一句辛苦了!撰写本书的过程中,我的家人一直在背后默默地支持着我,使我能倾尽全心写作并使本书顺利出版,在这里祝他们健康平安!
本书得以顺利出版,离不开人民邮电出版社编辑老师的鼎力相助,尤其是与我对接的单瑞婷老师。单老师从资深专业图书编辑的角度,在本书撰写过程中提供了非常宝贵的经验、指点和支持。感谢编辑老师们的辛勤付出,谢谢你们!
还要感谢在本书创作中帮助过我的读者朋友。本书脱胎于掘金小册,在整合重写和升级的过程以及宣传推广和阅读反馈中,得到了来自读者朋友非常多的帮助和反馈,他们也是构建本书的有力支持者。正因为有他们宝贵的反馈和建议,本书才能做到内容深入浅出,讲解清晰透彻,知识主次分明。
最后要感谢的是正在阅读本书的您,感谢您选择本书作为陪伴您学习Spring Framework和Spring Boot的“好伙伴”。希望本书能帮助您在学习Spring Framework和Spring Boot时汲取尽可能多的方法、思想、设计等。衷心地希望本书能给正在阅读的您带来帮助,祝您学习顺利,阅读愉快,前程似锦!
LinkedBear(苏振志)
2025年6月