SpringMVC源码精讲(软件开发源码精讲系列)

SpringMVC源码精讲(软件开发源码精讲系列)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2022-11
版次: 1
ISBN: 9787302606482
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 336页
字数: 513.000千字
2人买过
  • 本书从搭建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开发有一定实践经验的读者阅读、参考。 

    王涛,长期从事Java EE、微服务相关技术领域的开发,对Spring系列框架、MyBatis等其他开源框架都有深刻认识。
     

     

     

     

     
    目录 

     
    第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.3JSR303 参数验证用例 

     
    15.4JSR303参数验证源码分析 

     
    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注解的整体流程分析 

     
    小结 

     

  • 内容简介:
    本书从搭建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开发有一定实践经验的读者阅读、参考。 

  • 作者简介:
    王涛,长期从事Java EE、微服务相关技术领域的开发,对Spring系列框架、MyBatis等其他开源框架都有深刻认识。
  • 目录:

     

     

     

     

     
    目录 

     
    第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.3JSR303 参数验证用例 

     
    15.4JSR303参数验证源码分析 

     
    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注解的整体流程分析 

     
    小结 

     

查看详情
12
相关图书 / 更多
SpringMVC源码精讲(软件开发源码精讲系列)
Spring Framework6开发实战 Spring+Spring Web MVC+MyBatis
肖海鹏、耿卫江、王荣芝、张天怡、张志慧
SpringMVC源码精讲(软件开发源码精讲系列)
Spark大数据分析
作者
SpringMVC源码精讲(软件开发源码精讲系列)
Spark入门与大数据分析实战
迟殿委 李超
SpringMVC源码精讲(软件开发源码精讲系列)
Spark大数据开发(职业教育计算机系列教材)
唐春玲;周桥;陈小龙
SpringMVC源码精讲(软件开发源码精讲系列)
Spring Boot+Vue前后端分离项目全栈开发实战
唐文
SpringMVC源码精讲(软件开发源码精讲系列)
Spring快速入门到精通
明日科技 编著
SpringMVC源码精讲(软件开发源码精讲系列)
Spring Boot 3.0开发实战
李西明;陈立为
SpringMVC源码精讲(软件开发源码精讲系列)
Spark分布式处理实战
刘均 王璐烽
SpringMVC源码精讲(软件开发源码精讲系列)
Spring Security原理与实战:构建安全可靠的微服务
邹炎
SpringMVC源码精讲(软件开发源码精讲系列)
Spark原理深入与编程实战(微课视频版)
辛立伟;张帆;张会娟
SpringMVC源码精讲(软件开发源码精讲系列)
Spring Boot 3 +Vue 3开发实战
朱建昕
SpringMVC源码精讲(软件开发源码精讲系列)
Spring Cloud Alibaba核心技术与实战案例
高洪岩