新書推薦:
《
欧洲史:一本书历览欧洲数千年兴衰起伏,理解欧洲文明何以铸就今日世界
》
售價:HK$
333.8
《
趣学CCNA——路由与交换(第2版)
》
售價:HK$
100.6
《
世界航空地理(世界国别与区域地理研究丛书)
》
售價:HK$
244.2
《
学术的中心:英法德美
》
售價:HK$
87.4
《
为什么要读人类学
》
售價:HK$
77.3
《
井邑无衣冠 : 地方视野下的唐代精英与社会
》
售價:HK$
95.2
《
星地融合移动通信系统与关键技术从5G NTN到6G的卫星互联网发展
》
售價:HK$
212.6
《
妈妈,你好吗?(一封写给妈妈的“控诉”信,日本绘本奖作品)
》
售價:HK$
42.6
|
編輯推薦: |
本书从源码入手,由浅入深,系统讲解Spring MVC技术,结合理论和实践,帮助读者更好地理解、掌握相关知识点。
|
內容簡介: |
本书从搭建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框架是目前Java Web开发领域中最受欢迎的开发框架之一。
初识Spring MVC是在2015年的一个项目中,当时项目中使用的是Spring 4.1版本,该版本的功能虽然已经比较强大,但是各类配置文件的处理比较烦琐。笔者作为Spring Boot和Spring MVC的使用人员,对Spring MVC中的一些实现细节十分感兴趣,并付诸实践记录了一些源码的流程,同时想把这些经验分享给更多的人,便有了这本书。
本书的组织结构和主要内容
本书共分为两部分: 第一部分(第1~11章)主要围绕Spring MVC中的九大核心对象进行相关分析,在第一部分中对九大核心对象的初始化、调用流程进行分析,内容如下。
第1章 对Spring MVC框架的环境搭建和使用进行说明。
第2章 对Spring MVC的容器初始化进行说明,包含SpringXML模式的初始化和Spring注解模式的初始化。
第3~11章对Spring MVC九大核心对象HandlerMapping、HandlerAdapter、HandlerExceptionResolver、LocaleResolver、ThemeResolver、ViewResolver、MultipartResolver、RequestToViewNameTranslator和FlashMapManager进行分析。
第二部分(第12~16章)主要围绕Spring MVC中的辅助类进行分析,在第二部分中包含注册器、资源分析和参数相关等内容。
第12章 对Spring MVC中的常见注册器进行分析。
第13章 对Spring MVC中的资源对象相关内容进行分析。
第14章 对Spring MVC中的Model对象和View对象进行分析。
第15章 对Spring MVC中关于参数相关内容进行分析。
第16章 对Spring MVC中的HTTP消息相关内容进行分析。
本书配套源代码请扫描下方二维码获取。
源代码
本书面向读者
本书适合具有一定Java编程基础的读者、对Spring框架有基础开发能力的读者、对Spring Web开发有一定实践经验的读者。读者通过本书将学到Spring MVC的基础、Spring框架中Spring MVC相关源码内容和Spring MVC中的核心实现逻辑。
致谢
向所有SpringFramework项目的创建者和开发者表达诚挚的谢意,感谢他们杰出的工作和对开源项目的热情,没有他们就没有本书的诞生。
由于编者水平有限,书中不当之处在所难免,欢迎广大同行和读者批评指正。
王涛2022年4月
|
|