Spring MVC 源碼精講

王濤

  • 出版商: 清華大學
  • 出版日期: 2022-10-01
  • 定價: $479
  • 售價: 8.5$407
  • 語言: 簡體中文
  • ISBN: 730260648X
  • ISBN-13: 9787302606482
  • 相關分類: Java 相關技術
  • 下單後立即進貨 (約4週~6週)

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

買這商品的人也買了...

相關主題

商品描述

本書從搭建Spring MVC測試環境開始講解,具備充分的Spring MVC使用說明,並且對Spring MVC核心源碼進行分析。在Spring MVC開發過程中常用SpringXML模式和Spring註解模式,本書關於Spring MVC的用例說明大多數基於SpringXML模式。 本書內容包含Spring MVC中的九大核心組件的使用和源碼分析、Spring MVC中的註冊器分析和Spring MVC中常見的輔助接口分析,可以幫助讀者快速掌握Spring MVC框架的基本使用以及Spring MVC框架中常見接口的處理邏輯。 書中的源碼分析大部分情況下遵循測試用例優先,盡可能保證源碼可復現。 本書適合具有一定Java編程基礎的讀者、對Spring框架有基礎開發能力的讀者和對Spring Web開發有一定實踐經驗的讀者閱讀、參考。

目錄大綱

 

 

 

 

 

目錄

 

第1章Spring MVC環境搭建

 

1.1源碼環境下搭建Spring MVC工程

 

1.2Spring MVC環境搭建中的其他問題

 

小結

 

第2章Spring MVC容器初始化

 

2.1DispatcherServlet

 

2.1.1DispatcherServlet 靜態代碼塊分析

 

2.1.2DispatcherServlet構造函數分析

 

2.2HttpServletBean中init()方法分析

 

2.2.1FrameworkServlet 中 initServletBean()方法分析

 

2.2.2FrameworkServlet#configureAndRefreshWebApplicationContext()

 

方法分析

 

2.2.3FrameworkServlet#findWebApplicationContext()方法分析

 

2.2.4FrameworkServlet#createWebApplicationContext()方法分析

 

2.2.5FrameworkServlet#onRefresh()方法分析

 

2.3Spring MVC常規啟動環境搭建

 

2.4ContextLoaderListener 分析

 

2.5DispatcherServlet#onRefresh()分析

 

2.6AbstractRefreshableApplicationContext#loadBeanDefinitions()的拓展

 

2.7Spring MVC XML模式容器啟動流程總結

 

2.8EnableWebMvc註解

 

2.9WebMvcConfigurationSupport 分析

 

小結

 

第3章HandlerMapping 分析

 

3.1註冊HandlerMapping

 

3.2getHandler()尋找處理器

 

3.2.1Match 異常模擬

 

3.2.2handleNoMatch()分析

 

3.2.3addMatchingMappings()分析

 

3.2.4創建HandlerExecutionChain對象

 

3.2.5跨域處理

 

3.3AbstractUrlHandlerMapping 中的HandlerMapping分析

 

3.3.1lookupHandler()分析

 

3.3.2buildPathExposingHandler()分析

 

3.4HandlerMapping 初始化

 

3.5BeanNameUrlHandlerMapping分析

 

3.6RequestMappingHandlerMapping分析

 

3.7RouterFunctionMapping分析

 

3.8註解模式下HandlerMethod創建

 

3.8.1findBridgedMethod()分析

 

3.8.2initMethodParameters()分析

 

3.8.3evaluateResponseStatus()分析

 

3.8.4initDescription()分析

 

3.9攔截器相關分析

 

3.9.1攔截器添加

 

3.9.2攔截器執行

 

小結

 

 

 

 

 

第4章HandlerAdapter 分析

 

4.1初識 HandlerAdapter

 

4.2初始化 HandlerAdapter

 

4.3獲取 HandlerAdapter

 

4.4HttpRequestHandlerAdapter 分析

 

4.5SimpleControllerHandlerAdapter 分析

 

4.6Controller 接口分析

 

4.6.1ServletForwardingController 分析

 

4.6.2ParameterizableViewController 分析

 

4.6.3ServletWrappingController 分析

 

4.6.4UrlFilenameViewController 分析

 

4.7RequestMappingHandlerAdapter 分析

 

4.7.1initControllerAdviceCache()方法分析

 

4.7.2部分成員變量初始化

 

4.7.3handleInternal()方法分析

 

4.8HandlerFunctionAdapter 分析

 

4.9doDispatch()中HandlerAdapter相關處理

 

小結

 

第5章HandlerExceptionResolver 分析

 

5.1初識HandlerExceptionResolver

 

5.2統一異常處理

 

5.3HandlerExceptionResolver 初始化

 

5.4ExceptionHandlerExceptionResolver分析

 

5.4.1ExceptionHandlerExceptionResolver#afterPropertiesSet()

 

方法分析

 

5.4.2ExceptionHandlerExceptionResolver #doResolveHandlerMethodException()

 

分析

 

5.5ResponseStatusExceptionResolver分析

 

5.6DefaultHandlerExceptionResolver分析

 

5.7AbstractHandlerExceptionResolver分析

 

5.8SimpleMappingExceptionResolver分析

 

小結

 

第6章LocaleResolver分析

 

6.1初始化LocaleResolver

 

6.2國際化測試環境搭建

 

6.3LocaleChangeInterceptor分析

 

6.4CookieLocaleResolver 分析

 

6.4.1parseLocaleCookieIfNecessary()分析

 

6.4.2setLocaleContext()分析

 

6.5FixedLocaleResolver 分析

 

6.6SessionLocaleResolver 分析

 

6.7AcceptHeaderLocaleResolver 分析

 

6.8LocaleResolver整體處理流程分析

 

小結

 

第7章ThemeResolver 分析

 

7.1初始化ThemeResolver

 

7.2主題測試環境搭建

 

7.3ThemeChangeInterceptor 分析

 

7.4CookieThemeResolver 分析

 

7.5FixedThemeResolver 分析

 

7.6SessionThemeResolver 分析

 

7.7ResourceBundleThemeSource 分析

 

7.8ThemeResolver 整體處理流程分析

 

小結

 

第8章ViewResolver分析

 

8.1初始化ViewResolver

 

8.2ViewResolver 測試用例搭建

 

8.3InternalResourceViewResolver 分析

 

8.4UrlBasedViewResolver 分析

 

8.4.1buildView()方法分析

 

8.4.2loadView()方法分析

 

8.4.3applyLifecycleMethods()方法分析

 

8.4.4createView()方法分析

 

8.5XmlViewResolver 分析

 

8.5.1XmlViewResolver 測試用例搭建

 

8.5.2XmlViewResolver 初始化

 

8.5.3XmlViewResolver 解析操作

 

8.5.4XmlViewResolver 摧毀

 

8.6BeanNameViewResolver 分析

 

8.6.1BeanNameViewResolver 測試用例

 

8.6.2BeanNameViewResolver解析操作

 

8.7XsltViewResolver 分析

 

8.7.1XsltViewResolver 測試用例

 

8.7.2XsltViewResolver 解析操作

 

8.8AbstractCachingViewResolver分析

 

8.9ViewResolver 整體處理流程

 

小結

 

第9章MultipartResolver分析

 

9.1MultipartResolver 測試環境搭建

 

9.2MultipartResolver初始化

 

9.3CommonsMultipartResolver 分析

 

9.4StandardServletMultipartResolver 分析

 

9.5MultipartResolver整體處理流程

 

小結

 

第10章RequestToViewNameTranslator 分析

 

10.1RequestToViewNameTranslator測試環境搭建

 

10.2RequestToViewNameTranslator初始化

 

10.3DefaultRequestToViewNameTranslator 分析

 

10.4RequestToViewNameTranslator 整體處理流程分析

 

小結

 

第11章FlashMapManager分析

 

11.1FlashMapManager 測試環境搭建

 

11.2FlashMapManager 初始化

 

11.3SessionFlashMapManager 分析

 

11.4AbstractFlashMapManager分析

 

小結

 

第12章Spring MVC註冊器

 

12.1CorsRegistry

 

12.2InterceptorRegistry

 

12.3ResourceHandlerRegistry

 

12.4ViewControllerRegistry

 

12.5ViewResolverRegistry

 

小結

 

第13章Spring MVC資源相關分析

 

13.1ResourceHttpRequestHandler 分析

 

13.1.1InitializingBean接口實現分析

 

13.1.2HttpRequestHandler實現分析

 

13.2資源解析器責任鏈分析

 

13.3資源轉換器責任鏈分析

 

13.3.1CachingResourceTransformer分析

 

13.3.2CssLinkResourceTransformer 分析

 

13.3.3AppCacheManifestTransformer 分析

 

小結

 

第14章Model 和View分析

 

14.1初識 Model

 

14.2RedirectAttributesModelMap分析

 

14.3ConcurrentModel分析

 

14.4ExtendedModelMap分析

 

14.5初識 View

 

14.6JsonView分析

 

14.7JstlView分析

 

小結

 

第15章Spring MVC參數相關內容分析

 

15.1@InitBinder 測試用例

 

15.2@InitBinder 源碼分析

 

15.3JSR303 參數驗證用例

 

15.4JSR303參數驗證源碼分析

 

15.5@ModelAttribute 測試用例

 

15.6@ModelAttribute 源碼分析

 

15.6.1ModelFactory和ModelAttribute

 

15.6.2ModelAttributeMethodProcessor 分析

 

15.6.3createAttribute()方法分析

 

15.6.4constructAttribute()方法分析

 

15.6.5bindRequestParameters()方法分析

 

15.6.6validateIfApplicable()方法分析

 

小結

 

第16章Spring MVC中的HTTP消息

 

16.1HTTP消息編碼和解碼分析

 

16.1.1HTTP消息解碼

 

16.1.2HTTP消息編碼

 

16.2HTTP消息讀寫操作分析

 

16.2.1HTTP消息讀操作分析

 

16.2.2ReactiveHttpInputMessage 分析

 

16.2.3HTTP消息寫操作分析

 

16.2.4ReactiveHttpOutputMessage分析

 

16.3HttpMessageConverter 分析

 

16.3.1HttpMessageConverter 測試用例搭建

 

16.3.2帶有@RequestBody註解的整體流程分析

 

小結