新書推薦:

《
马长寿内陆欧亚学文存(全三集)
》
售價:NT$
2030.0

《
银行业刑事风险防控与应对
》
售價:NT$
449.0

《
语言、使用与认知
》
售價:NT$
321.0

《
帝国的叙事话语:国家身份塑造与冷战时期美国外交政策 北京大学人文学科文库
》
售價:NT$
704.0

《
世界上的城堡:一部千年古堡兴衰史(从军事建筑到中世纪城堡,59座经典古堡,高清全彩图文,精装收藏品质)
》
售價:NT$
1214.0

《
缪斯的诞生 现代西方艺术观念生成简史
》
售價:NT$
398.0

《
信念危机:投资者心理与金融脆弱性
》
售價:NT$
347.0

《
喵星语解密手册
》
售價:NT$
403.0
|
編輯推薦: |
本书从源码入手,由浅入深,系统讲解Spring Boot框架,结合理论和实践,帮助读者更好地理解、掌握相关知识点。
|
內容簡介: |
本书针对Spring 生态下的Spring Boot 框架进行源码分析,具备完善的源码处理分析。
本书内容包括Spring Boot 框架的启动流程分析、Spring Boot中的应用上下文相关内容、Spring Boot 自动装配、Spring Boot中的嵌入式Servlet、Spring Boot 与JDBC、Spring Boot与监控、SpringBoot与开发工具及SpringBoot与测试。本书主要进行的分析目标是在整理、分析SpringBoot框架中的核心技术及核心对象。本书可以帮助读者快速掌握Spring Boot 框架中的核心源码逻辑。
本书适合具有一定Java 编程基础的读者和对Spring Boot 框架有基础开发能力的读者。
|
目錄:
|
第1章 初识 Spring Boot 1
1.1 Spring Boot源码编译 1
1.1.1 Spring Boot 源码获取 1
1.1.2 Spring Boot 源码导入IDEA 2
1.2 Spring Boot 测试环境的搭建 5
1.3 Spring Boot 编译后可能遇到的问题 6
本章小结 7
第2章 Spring Boot 启动流程分析 8
2.1 SpringApplication.run方法简述 8
2.2 SpringApplication构造方法分析 9
2.2.1 WebApplicationType.deduceFromClasspath方法分析 11
2.2.2 getBootstrapRegistryInitializersFromSpringFactories方法分析 11
2.2.3 getSpringFactoriesInstances方法分析 12
2.2.4 createSpringFactoriesInstances 方法分析 12
2.2.5 deduceMainApplicationClass方法分析 13
2.3 run方法分析 14
2.3.1 createBootstrapContext 方法分析 16
2.3.2 prepareEnvironment 方法分析 17
2.3.3 configureIgnoreBeanInfo 方法分析 21
2.3.4 printBanner 方法分析 21
2.3.5 prepareContext方法分析 22
2.3.6 refreshContext方法分析 26
2.3.7 callRunners 方法分析 27
2.4 SpringApplicationRunListeners 分析 27
本章小结 28
第3章 ApplicationContextFactory 分析 29
3.1 ApplicationContextFactory 初识 29
3.2 AnnotationConfigServletWebServerApplicationContext 分析 30
3.3 AnnotationConfigReactiveWebServerApplicationContext 分析 35
3.4 引导上下文 36
本章小结 38
第4章 Spring Boot 中的ApplicationContextInitializer 39
4.1 ParentContextApplicationContextInitializer 分析 39
4.2 ConditionEvaluationReportLoggingListener 分析 41
4.3 ServerPortInfoApplicationContextInitializer 分析 43
4.4 DelegatingApplicationContextInitializer 分析 43
4.5 ServletContextApplicationContextInitializer 分析 45
4.6 SharedMetadataReaderFactoryContextInitializer 分析 45
4.7 RSocketPortInfoApplicationContextInitializer 分析 46
4.8 RestartScopeInitializer 分析 47
4.9 ConfigurationWarningsApplicationContextInitializer 分析 47
4.10 ConfigFileApplicationContextInitializer 分析 50
4.11 ContextIdApplicationContextInitializer 分析 51
本章小结 54
第5章 应用配置文件加载分析 55
5.1 YamlPropertySourceLoader 分析 55
5.2 PropertiesPropertySourceLoader 分析 56
5.3 ConfigDataLoader初识 57
5.3.1 SubversionConfigDataLoader分析 58
5.3.2 ConfigTreeConfigDataLoader分析 59
5.3.3 StandardConfigDataLoader分析 60
5.4 ConfigDataLocationResolver分析 62
5.4.1 SubversionConfigDataLocationResolver分析 62
5.4.2 StandardConfigDataLocationResolver分析 63
5.4.3 ConfigTreeConfigDataLocationResolver分析 64
5.5 ConfigDataLoaders 分析 64
5.6 ConfigDataLocationResolvers 分析 66
5.7 ConfigDataImporter 分析 67
5.8 ConfigDataEnvironmentContributor分析 69
5.9 ConfigDataEnvironmentContributors 分析 70
5.10 EnvironmentPostProcessorApplicationListener 分析 74
5.11 EnvironmentPostProcessor 分析 76
5.11.1 CloudFoundryVcapEnvironmentPostProcessor 分析 77
5.11.2 ConfigDataEnvironmentPostProcessor分析 78
5.12 ConfigDataEnvironment分析 79
5.13 application配置文件加载过程分析 80
本章小结 85
第6章 Spring Boot中条件相关源码分析 86
6.1 Spring Boot中条件注解介绍 86
6.2 SpringBootCondition分析 87
6.2.1 getClassOrMethodName 方法分析 87
6.2.2 logOutcome 方法分析 88
6.2.3 recordEvaluation方法分析 88
6.2.4 ConditionOutcome 分析 89
6.3 ConditionEvaluationReport 分析 89
6.3.1 ConditionEvaluationReport获取分析 90
6.3.2 unconditionalClasses数据初始化 90
6.3.3 outcomes初始化 94
6.4 Spring Boot中条件接口的实现分析 96
6.4.1 FilteringSpringBootCondition 分析 96
6.4.2 OnBeanCondition分析 97
6.4.3 OnClassCondition分析 103
6.4.4 OnWebApplicationCondition分析 107
6.4.5 OnCloudPlatformCondition分析 109
6.4.6 OnExpressionCondition分析 110
6.4.7 OnJavaCondition分析 111
6.4.8 OnJndiCondition分析 111
6.4.9 OnPropertyCondition分析 112
6.4.10 OnResourceCondition分析 114
6.4.11 OnWarDeploymentCondition分析 115
本章小结 115
第7章 EnableAutoConfiguration相关分析 116
7.1 EnableAutoConfiguration初识 116
7.2 AutoConfigurationImportSelector分析 117
7.3 ConfigurationClassFilter 分析 120
7.4 AutoConfigurationImportListener 分析 124
7.5 ImportAutoConfigurationImportSelector 分析 125
7.5.1 determineImports分析 126
7.5.2 getCandidateConfigurations分析 126
7.5.3 getExclusions分析 128
7.6 AutoConfigurationPackages相关分析 129
7.6.1 PackageImports分析 130
7.6.2 register分析 130
本章小结 131
第8章 Spring Boot日志系统分析 132
8.1 LoggingSystemFactory分析 132
8.2 DelegatingLoggingSystemFactory分析 133
8.3 LoggingSystem和AbstractLoggingSystem分析 133
8.4 JavaLoggingSystem分析 135
8.5 LogbackLoggingSystem分析 136
8.6 Log4J2LoggingSystem分析 137
8.7 LoggingApplicationListener分析 138
本章小结 139
第9章 Spring Boot中异常报告相关分析 140
9.1 SpringBootExceptionReporter分析 140
9.1.1 FailureAnalyzers 对象分析 140
9.1.2 SpringBootExceptionReporter 使用时机 143
9.2 FailureAnalysisReporter分析 144
9.3 FailureAnalyzer分析 145
本章小结 146
第10章 EnableConfigurationProperties相关分析 147
10.1 EnableConfigurationPropertiesRegistrar分析 147
10.2 ConfigurationPropertiesBeanRegistrar分析 149
10.3 ConfigurationPropertiesBinder分析 151
10.3.1 ConfigurationPropertiesBean分析 152
10.3.2 BindHandler分析 157
10.3.3 Binder分析 164
10.3.4 ConfigurationPropertiesBinder#bind方法分析 168
10.4 ConfigurationPropertiesBindingPostProcessor分析 169
10.5 BoundConfigurationProperties分析 173
10.6 ConfigurationPropertySource分析 173
10.6.1 AliasedConfigurationPropertySource 分析 174
10.6.2 FilteredConfigurationPropertiesSource分析 175
10.6.3 SpringConfigurationPropertySource分析 176
10.7 ConfigurationPropertiesScanRegistrar 分析 176
本章小结 179
第11章 Spring Boot中Servlet相关扫描与注册分析 180
11.1 ServletComponentScan相关分析 180
11.2 ServletComponentHandler 相关分析 182
11.3 RegistrationBean相关分析 185
11.3.1 ServletListenerRegistrationBean分析 186
11.3.2 DynamicRegistrationBean分析 186
11.3.3 ServletRegistrationBean分析 187
11.3.4 AbstractFilterRegistrationBean分析 188
11.4 WebListenerRegistrar和WebListenerRegistrar相关分析 190
本章小结 194
第12章 WebServerFactory分析 195
12.1 WebServerFactory子接口说明 195
12.2 JettyServletWebServerFactory分析 197
12.3 JettyReactiveWebServerFactory分析 200
12.4 TomcatServletWebServerFactory分析 201
12.5 TomcatReactiveWebServerFactory分析 207
12.6 UndertowServletWebServerFactory和UndertowReactiveWebServerFactory分析 209
12.7 NettyReactiveWebServerFactory分析 212
12.8 HttpHandlerAdapter相关分析 213
12.8.1 ServletHttpHandlerAdapter分析 214
12.8.2 TomcatHttpHandlerAdapter分析 218
12.8.3 JettyHttpHandlerAdapter分析 219
12.8.4 UndertowHttpHandlerAdapter分析 220
12.8.5 ReactorHttpHandlerAdapter分析 221
12.9 HttpHandler相关分析 222
12.9.1 DelayedInitializationHttpHandler分析 222
12.9.2 LazyHttpHandler分析 223
12.9.3 ContextPathCompositeHandler分析 223
12.9.4 HttpWebHandlerAdapter分析 224
本章小结 225
第13章 WebServer分析 226
13.1 初识WebServer 226
13.2 TomcatWebServer分析 227
13.3 JettyWebServer分析 234
13.4 NettyWebServer分析 237
13.5 UndertowWebServer分析 240
13.6 WebServer启动分析 242
本章小结 245
第14章 ErrorPage和Servlet包相关分析 246
14.1 ErrorPageRegistry 分析 246
14.2 ErrorPageRegistrar 分析 249
14.3 servlet-context分析 251
14.4 servlet-error分析 254
14.5 servlet-filter分析 257
本章小结 258
第15章 Spring Boot中JDBC相关内容分析 259
15.1 DataSourceAutoConfiguration分析 259
15.2 JdbcTemplateAutoConfiguration 和DataSourceTransactionManagerAutoConfiguration
分析 267
本章小结 269
第16章 Spring Boot Actuator 相关分析 270
16.1 Endpoints介绍 270
16.2 ServletWebOperation分析 274
16.2.1 ServletWebOperationAdapter 分析 275
16.2.2 SecureServletWebOperation分析 276
16.3 Operation相关分析 277
16.4 OperationInvoker相关分析 278
16.5 ExposableEndpoint相关分析 280
16.5.1 ExposableServletEndpoint分析 280
16.5.2 ExposableJmxEndpoint和ExposableWebEndpoint分析 282
16.5.3 AbstractExposableEndpoint分析 283
16.5.4 DiscoveredEndpoint和ExposableControllerEndpoint分析 284
16.6 EndpointsSupplier相关分析 285
16.6.1 EndpointDiscoverer分析 286
16.6.2 DiscoveredOperationsFactory 分析 294
16.6.3 OperationParameter分析 297
16.6.4 ParameterValueMapper分析 298
16.7 Endpoint自动装配Web相关内容分析 299
16.7.1 WebMvcEndpointHandlerMapping 分析 300
16.7.2 WebOperationRequestPredicate分析 307
16.8 端点info分析 308
本章小结 310
第17章 Spring Boot Devtools factories相关分析 311
17.1 Devtools中spring.factories概述 311
17.2 Devtools中ApplicationContextInitializer相关分析 312
17.3 Devtools中ApplicationListener相关分析 314
17.4 Devtools中EnableAutoConfiguration相关分析 317
17.4.1 DevToolsDataSourceAutoConfiguration分析 317
17.4.2 LocalDevToolsAutoConfiguration分析 321
17.4.3 RemoteDevToolsAutoConfiguration分析 326
17.5 Devtools中EnvironmentPostProcessor相关分析 328
17.5.1 DevToolsHomePropertiesPostProcessor分析 328
17.5.2 DevToolsPropertyDefaultsPostProcessor分析 329
本章小结 330
第18章 devtools中文件与类监控相关分析 331
18.1 FileSystemWatcherFactory相关分析 331
18.2 FileChangeListener分析 339
18.3 FailureHandler相关分析 344
18.4 ClassPathFileSystemWatcher分析 345
18.5 RestartLauncher和RestartClassLoader分析 346
本章小结 350
第19章 Spring Test相关分析 351
19.1 TestContext相关分析 351
19.1.1 CacheAwareContextLoaderDelegate分析 354
19.1.2 ContextCache分析 356
19.2 ContextLoader分析 361
19.2.1 AbstractContextLoader分析 362
19.2.2 AbstractGenericContextLoader分析 365
19.2.3 AbstractGenericWebContextLoader分析 368
19.3 TestExecutionListener分析 371
19.4 TestContextManager分析 372
19.5 SpringJUnit4ClassRunner分析 373
19.6 TestContextBootstrapper分析 375
本章小结 381
第20章 Spring Boot Test 分析 382
20.1 Spring Boot Test中的factories 382
20.1.1 Spring Boot Test中的ContextCustomizerFactory 383
20.1.2 Spring Boot Test中的TestExecutionListener 389
20.1.3 Spring Boot Test中的EnvironmentPostProcessor 392
20.2 Spring Boot Test中上下文相关分析 393
20.2.1 SpringBootContextLoader分析 393
20.2.2 SpringBootTestContextBootstrapper分析 396
本章小结 398
|
內容試閱:
|
Spring Boot框架是目前在Java Web开发领域中最受欢迎的开发框架之一。目前大量的Web项目都会选择Spring Boot框架作为底层框架进行相关开发。Spring Boot最早是基于Spring Framework 4.x版本进行的开发设计,继承了Spring框架的优秀基因,设计目标是用来简化Spring应用的初始化搭建过程及开发过程。
笔者初次听说Spring Boot是在2016年的一个技术分享会上,那时大部分项目还在使用Spring框架进行开发,Spring Boot框架的出现打破了原有Spring框架的开发模式,使配置效率和开发效率都得到了较大的提升。之后随着时间的推移,在各种项目中都使用了Spring Boot框架。
1. 本书的组织结构和主要内容
第1章对Spring Boot框架的源码获取、源码编译及Spring Boot框架中的模块进行介绍。
第2章对Spring Boot框架的启动流程进行分析。
第3章对Spring Boot框架中的ApplicationContextFactory进行分析,主要包含应用上下文的创建分析。
第4章对Spring Boot框架中的ApplicationContextInitializer进行分析,主要包含上下文初始化的流程控制分析。
第5章对Spring Boot框架中的PropertySourceLoader进行分析,主要包含Spring Boot框架中对于配置文件的加载分析。
第6章对Spring Boot框架中的条件注解相关内容进行分析。
第7章对Spring Boot框架中的EnableAutoConfiguration进行分析,主要包含自动装配相关内容的分析。
第8章对Spring Boot框架中的日志相关内容进行分析。
第9章对Spring Boot框架中的异常报告相关内容进行分析。
第10章对Spring Boot框架中的EnableConfigurationProperties进行分析。
第11章对Spring Boot框架中的Servlet扫描和注册相关内容进行分析。
第12章对Spring Boot框架中的WebServerFactory进行相关分析,包含WebServer的创建流程分析。
第13章对Spring Boot框架中的WebServer进行分析,包含WebServer的4种实现类以及启动分析。
第14章对Spring Boot框架中的servlet包下的相关内容进行分析,包含servlet-context、servlet-error和servlet-filter。
第15章对Spring Boot框架中与JDBC相关内容进行分析。
第16章对Spring Boot框架中的监控相关内容进行分析。
第17章对Spring Boot框架中的devtools技术栈中的factories相关内容进行分析。
第18章对Spring Boot框架中的devtools技术栈中的文件与类监控进行分析。
第19章对Spring Boot框架中的test模块前置内容Spring Test相关技术进行分析。
第20章对Spring Boot框架中的test模块进行相关分析。
2. 本书面向的读者
本书面向具备Java编程能力的读者。通过本书读者将学到Spring Boot框架中核心技术的相关实现。
本书面向对Spring Boot具备使用经验和有兴趣的读者。通过本书读者将学到Spring Boot框架的基础实现逻辑。
3. 致谢
在此,非常诚挚地感谢所有Spring Boot框架的创建者和开发者,感谢他们所做的工作和对开源项目的热情。没有他们就没有本书的诞生。
由于编者水平有限,书中不当之处在所难免,欢迎广大同行和读者批评指正。
王 涛
2025年1月
|
|