看透Spring MVC:源代码分析与实践
上QQ阅读APP看书,第一时间看更新

前言

当前网络正在改变人们生活的方方面面,从企业内部的管理和运营到我们个人的吃穿住行,所有这些都跟网络有着密切联系。不过这一切才刚刚开始,未来的网络将会给人们带来更多的惊喜,特别是在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的理解难度,所以在最后对其进行单独讲解。

本书源代码可以到kantou.excelib.com/springmvc下载。

致谢

我最想感谢的就是我的父亲韩志荣,正是因为他的大力支持和背后的默默付出才让笔者可以将更多的时间和精力放在本书的创作上,从而让本书可以在保证质量的前提下以最快的速度跟大家见面。

虽然笔者已经尽了自己最大的努力,但是受水平所限,难免会有遗漏或者讲解不够准确的地方,还请大家批评指正。如果大家通过本书可以对Web开发、对Spring MVC的理解以及对设计的理念有些许收获,那将是笔者最感到欣慰的事情。