• Spring Boot源码解读与原理分析
  • Spring Boot源码解读与原理分析
  • Spring Boot源码解读与原理分析
  • Spring Boot源码解读与原理分析
  • Spring Boot源码解读与原理分析
21年品牌 40万+商家 超1.5亿件商品

Spring Boot源码解读与原理分析

90.4 7.0折 129.8 全新

库存8件

四川成都
认证卖家担保交易快速发货售后保障

作者LinkedBear

出版社人民邮电出版社

ISBN9787115601377

出版时间2023-02

装帧平装

开本16开

定价129.8元

货号1202802084

上书时间2024-07-03

聚合博文书店

十年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
LinkedBear,Java开发工程师、底层技术研究者与分享者,倾心研究Spring技术体系多年,对Spring、Spring Boot等框架有独到的见解,拥有丰富的框架体系实践经验和架构封装经验。

目录
第 1部分  Spring Boot底层依赖的核心容器

第 1章  Spring Boot整体概述3
1.1  Spring Framework3
1.1.1  Spring Framework的历史4
1.1.2  IOC与AOP4
1.2  Spring Boot与Spring Framework4
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  导入ImportSelector19
2.2.5  导入ImportBeanDefinitionRegistrar21
2.2.6  扩展:DeferredImportSelector22
2.3  Spring Framework的条件装配24
2.3.1  基于Profile的装配24
2.3.2  基于Conditional的装配26
2.4  SPI机制28
2.4.1  JDK原生的SPI29
2.4.2  Spring Framework 3.2的SPI30
2.5  Spring Boot的装配机制32
2.5.1  @ComponentScan33
2.5.2  @SpringBootConfiguration34
2.5.3  @EnableAutoConfiguration35
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  BeanFactory55
3.1.2  ApplicationContext66
3.1.3  选择ApplicationContext而不是BeanFactory74
3.2  Spring Boot对IOC容器的扩展75
3.2.1  WebServerApplicationContext75
3.2.2  AnnotationConfigServletWebServerApplicationContext75
3.2.3  ReactiveWebApplicationContext76
3.3  选用注解驱动IOC容器的原因76
3.3.1  配置方式的对比76
3.3.2  约定大于配置下的选择77
3.4  Environment77
3.4.1  Environment概述77
3.4.2  Environment的结构与设计78
3.4.3  Environment与IOC容器的关系80
3.5  BeanDefinition81
3.5.1  理解元信息81
3.5.2  BeanDefinition概述81
3.5.3  BeanDefinition的结构与设计82
3.5.4  体会BeanDefinition85
3.5.5  BeanDefinitionRegistry88
3.5.6  设计BeanDefinition的意义89
3.6  后置处理器89
3.6.1  理解后置处理器89
3.6.2  BeanPostProcessor90
3.6.3  BeanPostProcessor的扩展91
3.6.4  BeanFactoryPostProcessor93
3.6.5  BeanDefinitionRegistryPostProcessor94
3.6.6  后置处理器对比95
3.7  IOC容器的启动流程95
3.8  小结100
第4章  Spring Boot的核心引导:SpringApplication101
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  创建SpringApplication107
4.2.2  启动SpringApplication107
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使用AOP110
5.3  AOP的开关:@EnableAspectJAutoProxy111
5.3.1  AspectJAutoProxyRegistrar112
5.3.2  AnnotationAwareAspectJAutoProxyCreator114
5.4  小结117

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

第6章  Spring Boot准备容器与环境121
6.1  创建SpringApplication122
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  启动SpringApplication129
6.2.1  前置准备130
6.2.2  获取SpringApplicationRunListeners133
6.2.3  准备运行时环境135
6.3  IOC容器的创建与初始化137
6.3.1  打印Banner137
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:初始化BeanFactory154
7.2.1  注解驱动的refreshBeanFactory155
7.2.2  XML驱动的refreshBeanFactory155
7.3  prepareBeanFactory:BeanFactory的预处理动作156
7.3.1  ApplicationContextAwareProcessor157
7.3.2  自动注入的支持158
7.3.3  ApplicationListenerDetector159
7.4  postProcessBeanFactory:BeanFactory的后置处理160
7.4.1  回调父类方法161
7.4.2  组件扫描&解析手动传入的配置类164
7.5  invokeBeanFactoryPostProcessors:执行BeanFactoryPostProcessor164
7.5.1  现有的后置处理器分类165
7.5.2  执行优选优先级的BeanDefinitionRegistryPostProcessor165
7.5.3  执行其他BeanDefinitionRegistryPostProcessor166
7.5.4  回调postProcessBeanFactory方法167
7.5.5  BeanFactoryPostProcessor的分类168
7.5.6  执行BeanFactoryPostProcessor168
7.5.7  重要的后置处理器:ConfigurationClassPostProcessor169
7.6  registerBeanPostProcessors:初始化BeanPostProcessor185
7.6.1  BeanPostProcessorChecker186
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.preInstantiateSingletons193
7.11.2  getBean193
7.11.3  createBean199
7.11.4  doCreateBean201
7.11.5  SmartInitializingSingleton215
7.12  finishRefresh-刷新后的动作216
7.12.1  LifecycleProcessor216
7.12.2  getLifecycleProcessor().onRefresh()217
7.13  resetCommonCaches:清除缓存217
7.14  ApplicationContext初始化中的扩展点218
7.14.1  invokeBeanFactoryPostProcessors218
7.14.2  finishBeanFactoryInitialization219
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与普通Tomcat234
8.1.2  Tomcat整体架构234
8.1.3  Tomcat的核心工作流程235
8.2  Spring Boot中嵌入式容器的模型236
8.2.1  WebServer236
8.2.2  WebServerFactory236
8.2.3  ServletWebServerFactory和ReactiveWebServerFactory237
8.2.4  ConfigurableServletWebServerFactory237
8.3  嵌入式Web容器的初始化时机237
8.3.1  创建WebServer238
8.3.2  Web容器关闭相关的回调241
8.4  嵌入式Tomcat的初始化242
8.4.1  获取Context243
8.4.2  阻止Connector初始化244
8.4.3  启动Tomcat244
8.4.4  阻止Tomcat结束246
8.5  嵌入式Tomcat的启动248
8.6  小结249
第9章  AOP模块的生命周期250
9.1  @EnableAspectJAutoProxy250
9.2  AnnotationAwareAspectJAutoProxyCreator252
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中提供的TargetSource268
9.5  代理对象生成的核心:wrapIfNecessary268
9.5.1  getAdvicesAndAdvisorsForBean269
9.5.2  createProxy274
9.6  代理对象的底层执行逻辑277
9.6.1  DemoService#save277
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整合JDBC295
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  创建JdbcTemplate302
10.2.3  配置事务管理器303
10.3  声明式事务的生效原理303
10.3.1  TransactionAutoConfiguration303
10.3.2  TransactionManagementConfigurationSelector305
10.3.3  AutoProxyRegistrar305
10.3.4  ProxyTransactionManagementConfiguration307
10.4  声明式事务的控制全流程309
10.4.1  CglibAopProxy#intercept309
10.4.2  TransactionInterceptor310
10.5  声明式事务的传播行为控制319
10.5.1  修改测试代码320
10.5.2  PROPAGATION_REQUIRED321
10.5.3  PROPAGATION_REQUIRES_NEW327
10.6  小结330
第 11章  Spring Boot整合MyBatis332
11.1  MyBatis框架概述332
11.2  Spring Boot整合MyBatis项目搭建333
11.3  自动装配核心334
11.3.1  场景启动器的秘密334
11.3.2  MybatisLanguageDriverAutoConfiguration335
11.3.3  MybatisAutoConfiguration335
11.4  小结342
第 12章  Spring Boot整合WebMvc343
12.1  整合WebMvc的核心自动装配343
12.2  WebMvc的核心组件344
12.2.1  DispatcherServlet344
12.2.2  Handler345
12.2.3  HandlerMapping345
12.2.4  HandlerAdapter347
12.2.5  ViewResolver348
12.3  @Controller控制器装配原理349
12.3.1  初始化RequestMapping的入口349
12.3.2  processCandidateBean350
12.3.3  detectHandlerMethods350
12.4  DispatcherServlet的工作全流程解析352
12.4.1  DispatcherServlet#service352
12.4.2  processRequest353
12.4.3  doService354
12.4.4  doDispatch356
12.4.5  DispatcherServlet工作全流程小结372
12.5  小结372
第 13章  Spring Boot整合WebFlux374
13.1  快速了解响应式编程与Reactor374
13.1.1  命令式与响应式374
13.1.2  概念和思想的回顾与引入375
13.1.3  快速体会Reactor框架377
13.2  快速使用WebFlux380
13.2.1  WebMvc的开发风格380
13.2.2  逐步过渡到WebFlux381
13.2.3  WebFlux的函数式开发382
13.2.4  WebMvc与WebFlux的对比383
13.3  WebFlux的自动装配384
13.3.1  ReactiveWebServerFactoryAutoConfiguration384
13.3.2  WebFluxAutoConfiguration385
13.3.3  WebFluxConfig386
13.3.4  EnableWebFluxConfiguration387
13.3.5  WebFluxConfigurationSupport388
13.4  DispatcherHandler的传统方式工作原理390
13.4.1  handle方法概览390
13.4.2  筛选HandlerMapping391
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是目前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源码和原理的理想选择。

主编推荐
1.Java底层技术研究开发工程师LinkedBear倾情分享多年来研究Spring技术体系的框架体系实践经验与架构封装经验,具有强大的可参考价值与实践意义
2.Spring学习难度大、门槛高,本书为开发者朋友提供了一段相对合理、平滑、系统的源码阅读和学习轨迹,更容易理解上手
3.本书适合拥有一定Spring理解与使用经验的读者学习进阶
4.本书适用的Spring Boot源码解读基准版本为 2.3.11.RELEASE 与 2.5.3,在未特别说明时,本书引用的源码均基于Spring Boot 2.3.11.RELEASE
5.附赠本书附带的测试代码与课件

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP