中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊
> >
Spring Boot源碼解讀與原理分析

包郵 Spring Boot源碼解讀與原理分析

作者:LinkedBear
出版社:人民郵電出版社出版時間:2023-02-01
開本: 16開 頁數: 436
中 圖 價:¥75.3(5.8折) 定價  ¥129.8 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

Spring Boot源碼解讀與原理分析 版權信息

Spring Boot源碼解讀與原理分析 本書特色

1.Java底層技術研究開發工程師LinkedBear傾情分享多年來研究Spring技術體系的框架體系實踐經驗與架構封裝經驗,具有強大的可參考價值與實踐意義2.Spring學習難度大、門檻高,本書為開發者朋友提供了一段相對合理、平滑、系統的源碼閱讀和學習軌跡,更容易理解上手3.本書適合擁有一定Spring理解與使用經驗的讀者學習進階4.本書適用的Spring Boot源碼解讀基準版本為 2.3.11.RELEASE 與 2.5.3,在未特別說明時,本書引用的源碼均基于Spring Boot 2.3.11.RELEASE5.附贈本書附帶的測試代碼與課件

Spring Boot源碼解讀與原理分析 內容簡介

Spring Boot是目前Java EE開發中頗受歡迎的框架之一。依托于底層Spring Framework的基礎支撐,以及完善強大的特性設計,Spring Boot已成為業界流行的應用和微服務開發基礎框架。 《Spring Boot源碼解讀與原理分析》共14章,分為4個部分。**部分介紹Spring Boot底層依賴的核心容器,以及底層Spring Framework的兩大核心特性IOC和AOP;第二部分從底層源碼角度深入剖析Spring Boot的生命周期,包括Spring Application、IOC容器、嵌入式Web容器和AOP模塊的生命周期;第三部分針對項目開發中整合的主流場景,介紹場景模塊中的核心裝配和關鍵機制原理,如JDBC中的事務、Web中的核心控制器等;第四部分與Spring Boot的運行部署相關,針對不同運行場景講解Spring Boot的啟動引導方式。 閱讀《Spring Boot源碼解讀與原理分析》之前,讀者需要先對Spring Framework和Spring Boot有基本的理解與簡單的框架使用經驗或項目開發經驗。本書的重點是Spring Boot的設計、思想和原理,無論是對于已經有一定基礎的開發者還是已熟練使用Spring Boot并希望進一步提升技能和水平的開發者,本書是他們透徹研究Spring Boot源碼和原理的理想選擇。

Spring Boot源碼解讀與原理分析 目錄

第 1部分 Spring Boot底層依賴的核心容器

第 1章 Spring Boot整體概述 3
1.1 Spring Framework 3
1.1.1 Spring Framework的歷史 4
1.1.2 IOC與AOP 4
1.2 Spring Boot與Spring Framework 4
1.3 Spring Boot的核心特性 5
1.4 Spring Boot的體系 5
1.5 開發第 一個Spring Boot應用 6
1.5.1 創建項目 6
1.5.2 編寫簡單代碼 10
1.6 小結 11
第 2章 Spring Boot的自動裝配 12
2.1 組件裝配 12
2.1.1 組件 12
2.1.2 手動裝配 13
2.1.3 自動裝配 13
2.2 Spring Framework的模塊裝配 14
2.2.1 模塊 14
2.2.2 快速體會模塊裝配 15
2.2.3 導入配置類 17
2.2.4 導入ImportSelector 19
2.2.5 導入ImportBeanDefinitionRegistrar 21
2.2.6 擴展:DeferredImportSelector 22
2.3 Spring Framework的條件裝配 24
2.3.1 基于Profile的裝配 24
2.3.2 基于Conditional的裝配 26
2.4 SPI機制 28
2.4.1 JDK原生的SPI 29
2.4.2 Spring Framework 3.2的SPI 30
2.5 Spring Boot的裝配機制 32
2.5.1 @ComponentScan 33
2.5.2 @SpringBootConfiguration 34
2.5.3 @EnableAutoConfiguration 35
2.6 WebMvc場景下的自動裝配原理 42
2.6.1 Servlet容器的裝配 43
2.6.2 DispatcherServlet的裝配 46
2.6.3 SpringWebMvc的裝配 48
2.7 小結 53
第3章 Spring Boot的IOC容器 54
3.1 Spring Framework的IOC容器 54
3.1.1 BeanFactory 55
3.1.2 ApplicationContext 66
3.1.3 選擇ApplicationContext而不是BeanFactory 74
3.2 Spring Boot對IOC容器的擴展 75
3.2.1 WebServerApplicationContext 75
3.2.2 AnnotationConfigServletWebServerApplicationContext 75
3.2.3 ReactiveWebApplicationContext 76
3.3 選用注解驅動IOC容器的原因 76
3.3.1 配置方式的對比 76
3.3.2 約定大于配置下的選擇 77
3.4 Environment 77
3.4.1 Environment概述 77
3.4.2 Environment的結構與設計 78
3.4.3 Environment與IOC容器的關系 80
3.5 BeanDefinition 81
3.5.1 理解元信息 81
3.5.2 BeanDefinition概述 81
3.5.3 BeanDefinition的結構與設計 82
3.5.4 體會BeanDefinition 85
3.5.5 BeanDefinitionRegistry 88
3.5.6 設計BeanDefinition的意義 89
3.6 后置處理器 89
3.6.1 理解后置處理器 89
3.6.2 BeanPostProcessor 90
3.6.3 BeanPostProcessor的擴展 91
3.6.4 BeanFactoryPostProcessor 93
3.6.5 BeanDefinitionRegistryPostProcessor 94
3.6.6 后置處理器對比 95
3.7 IOC容器的啟動流程 95
3.8 小結 100
第4章 Spring Boot的核心引導:SpringApplication 101
4.1 總體設計 101
4.1.1 啟動失敗的錯誤報告 101
4.1.2 Bean的延遲初始化 103
4.1.3 SpringApplication的定制 103
4.1.4 Web類型推斷 104
4.1.5 監聽與回調 104
4.1.6 應用退出 106
4.2 生命周期概述 107
4.2.1 創建SpringApplication 107
4.2.2 啟動SpringApplication 107
4.2.3 應用退出 108
4.3 小結 108
第5章 Spring Boot的AOP支持 109
5.1 Spring Framework的AOP回顧 109
5.1.1 AOP術語 109
5.1.2 通知類型 110
5.2 Spring Boot使用AOP 110
5.3 AOP的開關:@EnableAspectJAutoProxy 111
5.3.1 AspectJAutoProxyRegistrar 112
5.3.2 AnnotationAwareAspectJAutoProxyCreator 114
5.4 小結 117

第 2部分 Spring Boot的生命周期原理分析


第6章 Spring Boot準備容器與環境 121
6.1 創建SpringApplication 122
6.1.1 推斷Web環境 122
6.1.2 設置初始化器 123
6.1.3 設置監聽器 125
6.1.4 確定主啟動類 126
6.1.5 與Spring Boot 1.x的區別 127
6.1.6 與Spring Boot 2.4.x的區別 128
6.2 啟動SpringApplication 129
6.2.1 前置準備 130
6.2.2 獲取SpringApplicationRunListeners 133
6.2.3 準備運行時環境 135
6.3 IOC容器的創建與初始化 137
6.3.1 打印Banner 137
6.3.2 創建IOC容器 140
6.3.3 初始化IOC容器 142
6.3.4 刷新IOC容器 145
6.3.5 Spring Boot 2.4.x的新特性 145
6.4 IOC容器刷新后的回調 148
6.5 小結 149
第7章 IOC容器的刷新 150
7.1 初始化前的預處理 152
7.1.1 初始化屬性配置 152
7.1.2 初始化早期事件的集合 154
7.2 obtainFreshBeanFactory:初始化BeanFactory 154
7.2.1 注解驅動的refreshBeanFactory 155
7.2.2 XML驅動的refreshBeanFactory 155
7.3 prepareBeanFactory:BeanFactory的預處理動作 156
7.3.1 ApplicationContextAwareProcessor 157
7.3.2 自動注入的支持 158
7.3.3 ApplicationListenerDetector 159
7.4 postProcessBeanFactory:BeanFactory的后置處理 160
7.4.1 回調父類方法 161
7.4.2 組件掃描&解析手動傳入的配置類 164
7.5 invokeBeanFactoryPostProcessors:執行BeanFactoryPostProcessor 164
7.5.1 現有的后置處理器分類 165
7.5.2 執行*高優先級的BeanDefinitionRegistryPostProcessor 165
7.5.3 執行其他BeanDefinitionRegistryPostProcessor 166
7.5.4 回調postProcessBeanFactory方法 167
7.5.5 BeanFactoryPostProcessor的分類 168
7.5.6 執行BeanFactoryPostProcessor 168
7.5.7 重要的后置處理器:ConfigurationClassPostProcessor 169
7.6 registerBeanPostProcessors:初始化BeanPostProcessor 185
7.6.1 BeanPostProcessorChecker 186
7.6.2 MergedBeanDefinitionPostProcessor被重復注冊 187
7.6.3 PriorityOrdered類型的后置處理器 188
7.7 initMessageSource:初始化國際化組件 188
7.8 initApplicationEventMulticaster:初始化事件廣播器 190
7.9 onRefresh:子類擴展的刷新動作 191
7.10 registerListeners:注冊監聽器 191
7.11 finishBeanFactoryInitialization:初始化剩余的單例bean對象 192
7.11.1 beanFactory.preInstantiateSingletons 193
7.11.2 getBean 193
7.11.3 createBean 199
7.11.4 doCreateBean 201
7.11.5 SmartInitializingSingleton 215
7.12 finishRefresh-刷新后的動作 216
7.12.1 LifecycleProcessor 216
7.12.2 getLifecycleProcessor().onRefresh() 217
7.13 resetCommonCaches:清除緩存 217
7.14 ApplicationContext初始化中的擴展點 218
7.14.1 invokeBeanFactoryPostProcessors 218
7.14.2 finishBeanFactoryInitialization 219
7.15 循環依賴的解決方案 221
7.15.1 循環依賴的產生 221
7.15.2 循環依賴的解決模型 222
7.15.3 基于setter/@Autowired的循環依賴 222
7.15.4 基于構造方法的循環依賴 230
7.15.5 基于原型Bean的循環依賴 230
7.15.6 引入AOP的額外設計 231
7.16 小結 232
第8章 Spring Boot容器刷新擴展:嵌入式Web容器 233
8.1 嵌入式Tomcat簡介 233
8.1.1 嵌入式Tomcat與普通Tomcat 234
8.1.2 Tomcat整體架構 234
8.1.3 Tomcat的核心工作流程 235
8.2 Spring Boot中嵌入式容器的模型 236
8.2.1 WebServer 236
8.2.2 WebServerFactory 236
8.2.3 ServletWebServerFactory和ReactiveWebServerFactory 237
8.2.4 ConfigurableServletWebServerFactory 237
8.3 嵌入式Web容器的初始化時機 237
8.3.1 創建WebServer 238
8.3.2 Web容器關閉相關的回調 241
8.4 嵌入式Tomcat的初始化 242
8.4.1 獲取Context 243
8.4.2 阻止Connector初始化 244
8.4.3 啟動Tomcat 244
8.4.4 阻止Tomcat結束 246
8.5 嵌入式Tomcat的啟動 248
8.6 小結 249
第9章 AOP模塊的生命周期 250
9.1 @EnableAspectJAutoProxy 250
9.2 AnnotationAwareAspectJAutoProxyCreator 252
9.2.1 類繼承結構 253
9.2.2 初始化時機 253
9.2.3 作用時機 254
9.3 Advisor與切面類的收集 257
9.3.1 收集增強器的邏輯 257
9.3.2 收集原生增強器 258
9.3.3 解析AspectJ切面封裝增強器 259
9.4 TargetSource的設計 266
9.4.1 TargetSource的設計 267
9.4.2 TargetSource的好處 267
9.4.3 TargetSource的結構 267
9.4.4 Spring Framework中提供的TargetSource 268
9.5 代理對象生成的核心:wrapIfNecessary 268
9.5.1 getAdvicesAndAdvisorsForBean 269
9.5.2 createProxy 274
9.6 代理對象的底層執行邏輯 277
9.6.1 DemoService#save 277
9.6.2 獲取增強器鏈 278
9.6.3 執行增強器 281
9.6.4 jdk動態代理的執行底層 285
9.6.5 AspectJ中通知的底層實現 287
9.7 AOP通知的執行順序對比 289
9.7.1 測試代碼編寫 289
9.7.2 Spring Framework 5.x的順序 290
9.7.3 Spring Framework 4.x的順序 291
9.8 小結 292

第3部分 Spring Boot整合常用開發場景


第 10章 Spring Boot整合JDBC 295
10.1 Spring Boot整合JDBC項目搭建 295
10.1.1 初始化數據庫 295
10.1.2 整合項目 296
10.1.3 編寫測試代碼 296
10.2 整合JDBC后的自動裝配 297
10.2.1 配置數據源 298
10.2.2 創建JdbcTemplate 302
10.2.3 配置事務管理器 303
10.3 聲明式事務的生效原理 303
10.3.1 TransactionAutoConfiguration 303
10.3.2 TransactionManagementConfigurationSelector 305
10.3.3 AutoProxyRegistrar 305
10.3.4 ProxyTransactionManagementConfiguration 307
10.4 聲明式事務的控制全流程 309
10.4.1 CglibAopProxy#intercept 309
10.4.2 TransactionInterceptor 310
10.5 聲明式事務的傳播行為控制 319
10.5.1 修改測試代碼 320
10.5.2 PROPAGATION_REQUIRED 321
10.5.3 PROPAGATION_REQUIRES_NEW 327
10.6 小結 330
第 11章 Spring Boot整合MyBatis 332
11.1 MyBatis框架概述 332
11.2 Spring Boot整合MyBatis項目搭建 333
11.3 自動裝配核心 334
11.3.1 場景啟動器的秘密 334
11.3.2 MybatisLanguageDriverAutoConfiguration 335
11.3.3 MybatisAutoConfiguration 335
11.4 小結 342
第 12章 Spring Boot整合WebMvc 343
12.1 整合WebMvc的核心自動裝配 343
12.2 WebMvc的核心組件 344
12.2.1 DispatcherServlet 344
12.2.2 Handler 345
12.2.3 HandlerMapping 345
12.2.4 HandlerAdapter 347
12.2.5 ViewResolver 348
12.3 @Controller控制器裝配原理 349
12.3.1 初始化RequestMapping的入口 349
12.3.2 processCandidateBean 350
12.3.3 detectHandlerMethods 350
12.4 DispatcherServlet的工作全流程解析 352
12.4.1 DispatcherServlet#service 352
12.4.2 processRequest 353
12.4.3 doService 354
12.4.4 doDispatch 356
12.4.5 DispatcherServlet工作全流程小結 372
12.5 小結 372
第 13章 Spring Boot整合WebFlux 374
13.1 快速了解響應式編程與Reactor 374
13.1.1 命令式與響應式 374
13.1.2 概念和思想的回顧與引入 375
13.1.3 快速體會Reactor框架 377
13.2 快速使用WebFlux 380
13.2.1 WebMvc的開發風格 380
13.2.2 逐步過渡到WebFlux 381
13.2.3 WebFlux的函數式開發 382
13.2.4 WebMvc與WebFlux的對比 383
13.3 WebFlux的自動裝配 384
13.3.1 ReactiveWebServerFactoryAutoConfiguration 384
13.3.2 WebFluxAutoConfiguration 385
13.3.3 WebFluxConfig 386
13.3.4 EnableWebFluxConfiguration 387
13.3.5 WebFluxConfigurationSupport 388
13.4 DispatcherHandler的傳統方式工作原理 390
13.4.1 handle方法概覽 390
13.4.2 篩選HandlerMapping 391
13.4.3 搜尋HandlerAdapter并執行 393
13.4.4 返回值處理 394
13.4.5 工作流程小結 395
13.5 DispatcherHandler的函數式端點工作原理 396
13.5.1 HandlerMapping的不同 396
13.5.2 HandlerAdapter的不同 397
13.5.3 返回值處理的不同 398
13.5.4 工作流程小結 399
13.6 小結 399

第4部分 運行Spring Boot應用


第 14章 運行Spring Boot應用 403
14.1 部署打包的兩種方式 403
14.1.1 以可獨立運行jar包的方式 403
14.1.2 以war包的方式 404
14.2 基于jar包的獨立運行機制 405
14.2.1 可運行jar包的前置知識 405
14.2.2 Spring Boot的可運行jar包結構 405
14.2.3 JarLauncher的設計及工作原理 407
14.3 基于war包的外部Web容器運行機制 412
14.3.1 Servlet 3.0規范中引導應用啟動的說明 413
14.3.2 Spring BootServletInitializer的作用和原理 413
14.4 Spring Boot 2.3新特性:優雅停機 415
14.4.1 測試優雅停機場景 416
14.4.2 優雅停機的實現原理 417
14.5 小結 419
展開全部

Spring Boot源碼解讀與原理分析 作者簡介

LinkedBear,Java開發工程師、底層技術研究者與分享者,傾心研究Spring技術體系多年,對Spring、Spring Boot等框架有獨到的見解,擁有豐富的框架體系實踐經驗和架構封裝經驗。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 精密模具加工制造 - 富东懿| 协议书_协议合同格式模板范本大全 | 微型气泵-真空-蠕动-水泵-厂家-深圳市品亚科技有限公司 | ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 纸箱抗压机,拉力机,脂肪测定仪,定氮仪-山东德瑞克仪器有限公司 | jrs高清nba(无插件)直播-jrs直播低调看直播-jrs直播nba-jrs直播 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 商标转让-商标注册-商标查询-软著专利服务平台 - 赣江万网 | 网站建设-临朐爱采购-抖音运营-山东兆通网络科技 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 安徽净化工程设计_无尘净化车间工程_合肥净化实验室_安徽创世环境科技有限公司 | 常州减速机_减速机厂家_常州市减速机厂有限公司 | TPE塑胶原料-PPA|杜邦pom工程塑料、PPSU|PCTG材料、PC/PBT价格-悦诚塑胶 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 盘煤仪,盘料仪,盘点仪,堆料测量仪,便携式激光盘煤仪-中科航宇(北京)自动化工程技术有限公司 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 天津次氯酸钠酸钙溶液-天津氢氧化钠厂家-天津市辅仁化工有限公司 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | 衢州装饰公司|装潢公司|办公楼装修|排屋装修|别墅装修-衢州佳盛装饰 | 家乐事净水器官网-净水器厂家「官方」 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 金属清洗剂,防锈油,切削液,磨削液-青岛朗力防锈材料有限公司 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 不锈钢螺丝,不锈钢螺栓,不锈钢标准件-江苏百德特种合金有限公司 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 电解抛光加工_不锈钢电解抛光_常州安谱金属制品有限公司 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 塑木弯曲试验机_铜带拉伸强度试验机_拉压力测试台-倾技百科 | 氧化铝球_高铝球_氧化铝研磨球-淄博誉洁陶瓷新材料有限公司 | 课件导航网_ppt课件_课件模板_课件下载_最新课件资源分享发布平台 | 学习虾-免费的学习资料下载平台| 烟台条码打印机_烟台条码扫描器_烟台碳带_烟台数据采集终端_烟台斑马打印机-金鹏电子-金鹏电子 | 游泳池设备安装工程_恒温泳池设备_儿童游泳池设备厂家_游泳池水处理设备-东莞市君达泳池设备有限公司 | 通用磨耗试验机-QUV耐候试验机|久宏实业百科 | 高低温万能试验机-复合材料万能试验机-馥勒仪器| 北京网站建设首页,做网站选【优站网】,专注北京网站建设,北京网站推广,天津网站建设,天津网站推广,小程序,手机APP的开发。 | 电动葫芦-河北悍象起重机械有限公司 | 工业风机_环保空调_冷风机_工厂车间厂房通风降温设备旺成服务平台 | 路斯特伺服驱动器维修,伦茨伺服驱动器维修|万骏自动化百科 | 喷码机,激光喷码打码机,鸡蛋打码机,手持打码机,自动喷码机,一物一码防伪溯源-恒欣瑞达有限公司 |