购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

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 Framework与Spring Boot,并对新版本中引入的核心特性进行讲解。作者期望那些刚刚完成Java Web学习的初学者能够借助本书学习Spring Framework与Spring Boot,同时希望那些实战经验尚浅的开发者能够利用本书巩固自身基础并弥补知识空缺。此外,作者也希望那些致力于深入研究的进阶学习者能够借助本书进一步深入了解Spring Framework与Spring Boot的全貌。

本书组织结构

本书分为六个部分,分别介绍Spring Framework的IOC容器(第1~4章)、Spring Boot应用构建与核心特性(第5章、第6章)、Spring Framework的AOP(第7章、第8章)、基于WebMvc的Spring Boot Web应用开发(第9~第11章)、Spring Boot的数据访问能力整合(第12章、第13章),以及Spring Boot应用的生产与运维(第14章、第15章)。具体安排如下。

第1章从整体层面概述了Spring Framework以及它的发展历史、组成结构、生态核心成员等,总体内容以介绍为主。

第2章从原生Servlet的三层架构开始推演IOC思想,讲解不同IOC容器的特性及使用方式,以及IOC思想的两种实现方式:依赖查找与依赖注入。

第3章讲解IOC容器中的Bean组件,主要从Bean的类型、作用域、实例化方式和基本生命周期等方面展开介绍。

第4章重点讲解IOC容器的设计与机制,包括BeanFactory、ApplicationContext、IOC容器的事件驱动、装配机制、组件注册与扫描机制、PropertySource等。

第5章开始讲解Spring Boot,我们通过一个简单示例接触Spring Boot,并简单分析Spring Boot应用构建的两大利器:依赖管理与自动装配。

第6章从多个方面讲解Spring Boot的最佳实践,包括属性配置、外部化配置、Banner机制、日志的使用、异常分析等,还介绍了Spring Boot应用启动过程的简单扩展点和场景启动器。

第7章开始讲解Spring Framework的另一个核心特性:AOP。我们基于IOC思想的推演示例继续推演AOP思想,并介绍AOP中涉及的术语,演示基于Spring Boot和Spring Framework的AOP的使用方式。

第8章讲解AOP机制的更多细节,包括AOP联盟、通知方法参数、切面的执行顺序等。

第9章进入Web应用的开发,从Java Web应用逐步过渡到基于Spring Boot的WebMvc应用开发,并介绍和演示WebMvc中比较简单且常用的机制和使用方法。

第10章介绍WebMvc的更多进阶和高级机制,包括拦截器、国际化支持、跨域等,此外还针对REST服务的调用和Servlet原生组件进行演示。

第11章讲解Spring Boot运行Web应用背后的功臣——嵌入式容器,主要介绍和讲解Spring Boot整合嵌入式容器的使用、配置、替换等。

第12章开始接触Dao层开发,我们使用Spring Boot整合基础的spring-jdbc,完成Dao层的简单开发和事务控制。

第13章介绍Spring Boot与MyBatis、MyBatis-Plus框架的整合,以替代原生JDBC工具类操纵关系型数据库。

第14章开始进入生产与运维阶段,我们会了解开发完Spring Boot应用后如何打包和制作Docker镜像。

第15章重点讲解Spring Boot提供的生产级特性——监控,介绍Spring Boot原生提供的Actuator、监控端点Endpoints、监控指标Metrics,还介绍接入可视化管理的Prometheus+ Grafana的成熟监控体系。

目标读者

本书是一本倾向于入门、熟悉和使用的图书,读者可以完全不了解 Spring Framework和Spring Boot,仅需要具备最简单的Java Web开发基础即可。因此本书更适合以下人群阅读:

完成Java Web基础阶段学习,想要接触框架学习的读者;

有Spring Boot、Spring Framework的使用基础,想要掌握更多核心特性的读者;

有实际的项目开发经验,想扩展Spring体系知识面的读者;

期望进阶到技术总监、架构师等高级技术岗位的开发者;

有意向深入探究Spring生态的研究者。

表达约定

本书中出现的部分名词受作者主观表述方式的影响,可能会出现多种不同的叫法,以下是部分专有名词的映射关系。

Spring Framework:指Spring框架,简称Spring。

WebMvc:指Spring MVC,Spring WebMvc也是如此。

Bean:Spring Framework中管理的组件对象(概念)。

bean:容器中真实存在的组件对象实例。

IOC容器:泛指ApplicationContext,当上下文讲解BeanFactory时,则指代BeanFactory。

Web容器:Servlet容器与NIO容器的统称,不仅限于Tomcat、Jetty等Servlet容器。

在展示测试代码或框架源码的片段中,考虑到部分代码的篇幅和长度问题会受纸质图书的呈现方式影响,会对部分代码进行折叠或换行处理,对涉及源码的部分视情况进行省略或删减,读者在阅读时可适当结合IDE阅读,以达到最好的阅读效果。

框架版本

在编写本书期间Spring Framework的最新正式版本为6.1.x,Spring Boot的最新正式版本是3.2.x。时至定稿日,Spring Framework和Spring Boot的版本已分别更新到6.2.x与3.3.x。考虑到Spring Framework 6.2与Spring Boot 3.3中更新的特性没有特别值得讲解的部分,最终本书定稿时所采用的Spring Framework基准版本为6.1.2,Spring Boot基准版本为3.2.1,在没有特别说明版本时,本书中引用的源码均基于Spring Framework 6.1.2与Spring Boot 3.2.1。

勘误、反馈和源码

Spring Boot和Spring Framework在当下的应用范围甚广,升级到新版本后更是出现大量改动。虽然作者在编写本书时已经对每个知识点反复研究、测试和推敲,力求讲解得尽可能正确、精准、易懂,但作者本人的技术水平有限,还是不敢保证所有内容都没有错误。如果读者发现本书中有任何错误,或者想给本书及作者提供任何建议,欢迎通过以下方式与作者取得联系,以便及时修订本书。

邮箱:LinkedBear@163.com。

微信公众号:Spring引路熊导师。

博客:http://site.linkedbear.top。

本书的勘误情况将发布在微信公众号与博客中,请各位读者及时关注,以便获取最新的信息。

致谢

创作本书是对自己的又一次挑战,与自己更擅长的原理分析不同,从零开始系列书更侧重于技术学习初期的“领进门”,讲会、讲懂、讲明白是第一要义。本书的体量更加庞大,创作本书的过程更是非常漫长。在此过程中,我的家人一直在背后默默地支持着我,使我得以全心投入于本书的编写,并最终促成其顺利出版。在此,我衷心祝愿他们健康、平安!

本书得以顺利出版,离不开人民邮电出版社编辑团队的鼎力相助,尤其是与我对接的傅道坤老师和单瑞婷老师,两位老师从专业图书编辑的角度,在本书撰写过程中给予了非常宝贵的建议、指点和支持。感谢编辑老师们的辛勤付出,谢谢你们!

还要感谢在本书撰写过程中帮助过我的读者朋友。本书脱胎于掘金小册,在整合、重写、升级,以及后续的宣传推广和阅读反馈环节,得到了众多小册读者的大力支持和宝贵意见。他们不仅是本书的坚实后盾,而且正是由于他们宝贵的反馈和建议,本书才能做到内容覆盖多样、讲解清晰透彻、内容主次分明。

最后要感谢的是正在阅读本书的你。感谢你选择本书作为陪伴你学习Spring Framework和Spring Boot的“好伙伴”,希望在本书的支持下,你能在学习Spring Framework和Spring Boot时汲取尽可能多的方法、思想。愿本书能给正在阅读的你带来帮助,祝你阅读愉快、学习顺利、前程似锦!

苏振志(LinkedBear)
2024年6月 LuE4zOs5nxgoiIl3xemZ3qITJ/5fRxk4SingEBqdCykj3glBczhsqp3VkTJr2SEF

点击中间区域
呼出菜单
上一章
目录
下一章
×