编辑推荐
国内资深Web开发专家根据Spring MVC全新技术撰写,基于实际生产环境,从基础知识、源代码和实战3个维度对Spring MVC的结构和实现进行详细讲解
全面介绍Spring MVC的架构、原理、核心概念和操作,通过案例完整呈现Tomcat的实现,系统总结Spring MVC九大组件的处理以及常用的技巧和实践
在大型网站和复杂系统的开发中,Java具有天然的优势,而在Java的Web框架中Spring MVC以其强大的功能以及简单且灵活的用法受到越来越多开发者的青睐。本书不仅详细地分析Spring MVC的结构及其实现细节,而且讲解网站的不同架构及其演变的过程,以及网络底层协议的概念及其实现方法,帮助读者开发更高效的网站。
通过本书,你将:
系统学习网站的各种架构以及每种架构所针对的问题。
深入分析Web底层协议及其实现方法。
系统理解Spring MVC框架,为灵活开发高质量产品打下坚实基础。
深入理解Spring MVC的编程技巧和设计理念,提高综合思考、整体架构的能力。
学习作者自研的源代码分析方法——器用分析法,高效学习程序源代码。
内容简介
国内资深Web开发专家根据Spring MVC新技术撰写,基于实际生产环境,从基础知识、源代码和实战3个维度对Spring MVC的结构和实现进行详细讲解。全面介绍Spring MVC的架构、原理、核心概念和操作,通过案例完整呈现Tomcat的实现,系统总结Spring MVC九大组件的处理以及常用的技巧和实践。
《看透Spring MVC:源代码分析与实践》分为四篇,共22章。第一篇(第1~7章)介绍网站相关的基础知识,涉及网站架构、网络通信的底层协议以及实现方法,并详细分析Tomcat的实现过程,旨在帮助大家整体掌握网站的结构并理解Spring MVC所处的位置。第二篇(第8~10章)对Spring MVC的整体结构进行分析,涉及Spring MVC的配置、创建及用法,旨在帮助大家理解Spring MVC的架构与实际操作。第三篇(第11~20章)详细分析Spring MVC的九大组件的实现方法,涉及每个组件的接口、作用和用法。第四篇(第21章和第22章)总结整个Spring MVC架构知识并补充了异步请求相关的内容,涉及从更高层次分析Spring MVC的设计理念以及具体请求的处理过程,同时对异步请求进行了详细解析,帮助读者深入理解请求的实现方式。
目录
前言
第一篇 网站基础知识
第1章 网站架构及其演变过程2
1.1 软件的三大类型2
1.2 基础的结构并不简单3
1.3 架构演变的起点5
1.4 海量数据的解决方案5
1.4.1 缓存和页面静态化5
1.4.2 数据库优化6
1.4.3 分离活跃数据8
1.4.4 批量读取和延迟修改8
1.4.5 读写分离9
1.4.6 分布式数据库10
1.4.7 NoSQL和Hadoop10
1.5 高并发的解决方案11
1.5.1 应用和静态资源分离11
1.5.2 页面缓存12
1.5.3 集群与分布式12
1.5.4 反向代理13
1.5.5 CDN14
1.6 底层的优化15
1.7 小结15
第2章 常见协议和标准17
2.1 DNS协议17
2.2 TCP/IP协议与Socket18
2.3 HTTP协议20
2.4 Servlet与Java Web开发22
第3章 DNS的设置23
3.1 DNS解析23
3.2 Windows 7设置DNS服务器24
3.3 Windows设置本机域名和IP的对应关系25
第4章 Java中Socket的用法26
4.1 普通Socket的用法26
4.2 NioSocket的用法28
第5章 自己动手实现HTTP协议33
第6章 详解Servlet37
6.1 Servlet接口37
6.2 GenericServlet40
6.3 HttpServlet41
第7章 Tomcat分析44
7.1 Tomcat的顶层结构及启动过程44
7.1.1 Tomcat的顶层结构44
7.1.2 Bootstrap的启动过程45
7.1.3 Catalina的启动过程47
7.1.4 Server的启动过程48
7.1.5 Service的启动过程50
7.2 Tomcat的生命周期管理52
7.2.1 Lifecycle接口52
7.2.2 LifecycleBase53
7.3 Container分析59
7.3.1 ContainerBase的结构59
7.3.2 Container的4个子容器60
7.3.3 4种容器的配置方法60
7.3.4 Container的启动62
7.4 Pipeline-Value管道69
7.4.1 Pipeline-Value处理模式69
7.4.2 Pipeline-Value的实现方法70
7.5 Connector分析73
7.5.1 Connector的结构73
7.5.2 Connector自身类74
7.5.3 ProtocolHandler77
7.5.4 处理TCP/IP协议的Endpoint77
7.5.5 处理HTTP协议的Processor80
7.5.6 适配器Adapter81
第二篇 俯视Spring MVC
第8章 Spring MVC之初体验84
8.1 环境搭建84
8.2 Spring MVC最简单的配置84
8.2.1 在web.xml中配置Servlet85
8.2.2 创建Spring MVC的xml配置文件85
8.2.3 创建Controller和view86
8.3 关联spring源代码87
8.4 小结89
第9章 创建Spring MVC之器90
9.1 整体结构介绍90
9.2 HttpServletBean93
9.3 FrameworkServlet95
9.4 DispatcherServlet100
9.5 小结107
第10章 Spring MVC之用108
10.1 HttpServletBean108
10.2 FrameworkServlet108
10.3 DispatcherServlet114
10.4 doDispatch结构118
10.5 小结123
第三篇 Spring MVC组件分析
第11章 组件概览126
11.1 HandlerMapping126
11.2 HandlerAdapter128
11.3 HandlerExceptionResolver130
11.4 ViewResolver131
11.5 RequestToViewNameTranslator133
11.6 LocaleResolver133
11.7 ThemeResolver135
11.8 MultipartResolver137
11.9 FlashMapManager138
11.10 小结139
第12章 HandlerMapping140
12.1 AbstractHandlerMapping140
12.1.1 创建AbstractHandlerMapping之器141
12.1.2 AbstractHandlerMapping之用142
12.2 AbstractUrlHandlerMapping系列143
12.2.1 AbstractUrlHandlerMapping143
12.2.2 SimpleUrlHandlerMapping149
12.2.3 AbstractDetectingUrlHandler-Mapping150
12.3 AbstractHandlerMethodMapping系列152
12.3.1 创建AbstractHandlerMethod-Mapping系列之器153
12.3.2 AbstractHandlerMethodMapping系列之用158
12.4 小结159
第13章 HandlerAdapter161
13.1 RequestMappingHandlerAdapter概述162
13.2 RequestMappingHandlerAdapter自身结构169
13.2.1 创建RequestMappingHandler-Adapter之器169
13.2.2 RequestMappingHandlerAdapter之用173
13.2.3 小结185
13.3 ModelAndViewContainer185
13.4 SessionAttributesHandler和SessionAttributeStore188
13.5 ModelFactory192
13.5.1 初始化Model192
13.5.2 更新Model197
13.6 ServletInvocableHandlerMethod199
13.6.1 HandlerMethod199
13.6.2 InvocableHandlerMethod203
13.6.3 ServletInvocableHandler-Method205
13.7 HandlerMethodArgumentResolver207
13.8 HandlerMethodReturnValue-Handler218
13.9 小结221
第14章 ViewResolver223
14.1 ContentNegotiatingViewResolver225
14.2 AbstractCachingViewResolver系列228
UrlBasedViewResolver231
14.3 小结235
第15章 RequestToViewName-Translator237
第16章 HandlerExceptionResolver239
16.1 AbstractHandlerException-Resolver239
16.2 ExceptionHandlerException-Resolver241
16.3 DefaultHandlerExceptionResolver243
16.4 ResponseStatusExceptionResolver245
16.5 SimpleMappingExceptionResolver246
16.6 小结250
第17章 MultipartResolver251
17.1 StandardServletMultipart-Resolver251
17.2 CommonsMultipartResolver253
17.3 小结256
第18章 LocaleResolver257
第19章 ThemeResolver263
第20章 FlashMapManager266
第四篇 总结与补充
第21章 总结272
21.1 Spring MVC原理总结272
21.2 实际跟踪一个请求275
第22章 异步请求281
22.1 Servlet 3.0对异步请求的支持281
22.1.1 Servlet 3.0处理异步请求实例282
22.1.2 异步请求监听器Async-Listener284
22.2 Spring MVC中的异步请求286
22.2.1 Spring MVC中异步请求相关组件286
22.2.2 Spring MVC对异步请求的支持297
22.2.3 WebAsyncTask和Callable类型异步请求的处理过程及用法301
22.2.4 DeferredResult类型异步请求的处理过程及用法303
22.2.5 ListenableFuture类型异步请求的处理过程及用法305
22.3 小结309
前言/序言
当前网络正在改变人们生活的方方面面,从企业内部的管理和运营到我们个人的吃穿住行,所有这些都跟网络有着密切联系。不过这一切才刚刚开始,未来的网络将会给人们带来更多的惊喜,特别是在2015年“两会”中将“互联网+”纳入我国的发展战略之后,网络未来几年的高速发展更会超出我们的想象。
在网络技术中基于浏览器的B/S结构无论在PC端还是手机端都充当着至关重要的角色。PC端自不必说,手机中很多应用虽然是以APP的形式存在,但它采用的还是B/S结构,如今日头条、微信的朋友圈等,这些应用在内部封装了浏览器,后端仍然是Web站点。
在大型网站和复杂系统的开发中,Java无疑具有很大的优势,而在Java的Web框架中Spring MVC以其强大的功能和简单且灵活的用法受到越来越多开发者的青睐。
Spring MVC入门很简单,但是要想真正使用好却并非易事,而且现在也没有全面、深入的使用资料,以致在实际使用的过程中程序员经常会遇到各种各样的问题而不知道如何解决。对Spring MVC这样的开源项目来说,最好的学习方法当然是分析它的源代码,分析透源代码不仅可以让我们更灵活地使用Spring MVC来开发高质量的产品,而且可以学习到其中的很多优秀的编程技巧和设计理念。
本书除了分析Spring MVC的源代码,还系统地介绍了各种网站架构的演变以及Web开发中所涉及的协议和Tomcat的实现方法,现在很多程序员都想了解这方面的知识,但苦于缺乏通俗易懂的资料,而且这些也是程序员达到更高的层次所需要的知识。
通过本书你可以得到什么系统学习网站的各种架构以及相应问题的解决方案。
零基础系统学习Web底层协议及其实现方法。
系统、深入地理解Spring MVC,为灵活开发高质量产品打下基础。
学习Spring MVC的编程技巧和设计理念,提高自己综合思考、整体架构的能力。
学习到笔者设计的一套分析源码的方法—器用分析法,古人说“授人以鱼不如授人以渔”,虽然这套方法并不复杂但是对于分析复杂的代码却非常有用。
当然,并不是说像看小说一样翻一遍本书就可以获得这么多东西,这需要大家真正沉下心来认真地去看,而且最好能对照着源代码去看。俗话说“磨刀不误砍柴工”,分析源代码就是磨刀的过程,是真正提升自己实力的过程,就像武术里的内功修炼一样,只有花足够的时间和精力才能到达一定的高度,这就是我们经常说的“功夫”,当功夫达到一定的高度时很多棘手的问题就可以轻而易举地解决了。
本书读者对象有Java编程基础,想学习JavaWeb开发的读者。
有JavaWeb开发经验,想学习Spring MVC的读者。
有基础Spring MVC开发经验,想深入学习的读者。
有丰富Spring MVC开发经验,想学习Spring MVC底层代码的读者。
想自己开发Spring MVC插件的读者。
本书特点本书从最底层的架构和协议开始讲解,即使没有太多开发经验的读者也可以理解,同时由于本书包含的内容全面而且深入,所以即使有丰富Web开发经验的读者读过之后也会有所收获。
本书采用了总分总的结构,首先概述全书内容,让大家在脑子里建立起整个框架,然后再对每个点展开分析,最后总结。这就好像一栋建筑,首先把它的整体结构展示给大家,然后再具体介绍每个细节,这样就可以让大家思路清晰而不至于迷失方向。这种模式最符合人的认知方式,所以不仅仅适用于学习,而且可以使用到别的很多地方,比如,进入一个新公司后(特别是大型公司),首先要了解一下公司都有哪些部门,各个部门之间是怎么协调配合的,弄明白整体结构之后再思考自己的业务,这样就可以理解得更加深,做得更好,如果有机会再多了解点其他部门的业务,这样成长得就会更快。
本书讲解的过程通俗易懂、深入浅出,对于不容易理解的内容,通过简单的例子让大家一目了然。在分析源代码的过程中还对一些代码分析了Spring MVC为什么要那么处理,那么处理有哪些好处,有些地方还为大家指出了需要注意的问题、可以实现的需求以及可以借鉴的东西等内容。
本书结构安排本书一共分为四篇。
第一篇首先讲解了网站基础知识,包括网站架构的演变以及每种架构所针对的问题、Web底层的协议以及简单的实现方法,最后分析了Tomcat的实现方法,这样可以让大家对Web有整体而且深入的理解,从而为分析Spring MVC打下坚实的基础。
第二篇分析了Spring MVC的整体结构,帮助大家理解请求是怎么到Spring MVC中的,以及在Spring MVC中都做了些什么,这部分主要是帮大家建立框架,让大家对Spring MVC的整体结构了然于胸,在后面内容中只需要对具体的组件进行分析即可。
第三篇分别对Spring MVC中的9大组件进行了分析,这部分又分了两步:第一步先分析了每个组件的接口、作用和用法,让大家对每个组件有个大体的认识;第二步详细分析了9大组件的实现。
第四篇对Spring MVC的整体结构做了总结,并对异步请求的原理及用法做了补充。总结分为两步,首先是对Spring MVC的结构进行总结,并从更高的层次分析其设计理念;然后通过跟踪一个具体的请求帮助大家整体梳理请求的处理过程。异步请求是一块相对独立的内容,如果将其放入Spring MVC的分析过程中将增加大家对Spring MVC的理解难度,所以在最后对其进行单独讲解。
致谢我最想感谢的就是我的父亲韩志荣,正是因为他的大力支持和背后的默默付出才让笔者可以将更多的时间和精力放在本书的创作上,从而让本书可以在保证质量的前提下以最快的速度跟大家见面。
虽然笔者已经尽了自己最大的努力,但是受水平所限,难免会有遗漏或者讲解不够准确的地方,还请大家批评指正。如果大家通过本书可以对Web开发、对Spring MVC的理解以及对设计的理念有些许收获,那将是笔者最感到欣慰的事情。
看透Spring MVC:源代码分析与实践 epub pdf mobi txt 电子书 下载 2024
看透Spring MVC:源代码分析与实践 下载 epub mobi pdf txt 电子书 2024