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