Spring Boot源碼精講

王濤

  • 出版商: 清華大學
  • 出版日期: 2025-03-01
  • 定價: $774
  • 售價: 8.5$658
  • 語言: 簡體中文
  • ISBN: 7302683662
  • ISBN-13: 9787302683667
  • 相關分類: Java 相關技術
  • 下單後立即進貨 (約4週~6週)

  • Spring Boot源碼精講-preview-1
  • Spring Boot源碼精講-preview-2
  • Spring Boot源碼精講-preview-3
Spring Boot源碼精講-preview-1

相關主題

商品描述

"本書針對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