前言

前言

作为Web开发人员,我愿意创建新的东西,将它们快速上线,然后将注意力转移到下一个新的想法上。
如今,所有的应用都互相连接在了一起,我们需要与社交媒体进行交互,促进产品和复杂系统的发展,为用户提供更大的价值。
直到现在,这些对于Java 开发人员来说都非常遥远和复杂。随着Spring Boot 的诞生和云平台的平民化,我们可以在有限的时间内创建精彩的应用并让所有的人来访问,而这个过程不需要花一分钱。
在本书中,我们将会从头开始构建一个有用的Web应用。这个应用有很多很棒的特性,如国际化、表单校验、分布式会话与缓存、社交登录、多线程编程等。
同时,我们还会对其进行完整的测试。
在本书结束之前,我们还会将这个小应用部署到云端,使它能够通过Web进行访问。
如果你觉得这挺有意思的话,那么就别浪费时间了,马上开始着手编码吧!

本书所涵盖的内容

第1章”快速搭建Spring Web应用”能够让我们非常快速地开始使用Spring Boot。本章介绍了让我们更具生产效益的工具,如Spring Tool SuiteGit,本章还会帮助我们搭建应用的主体框架,并见识Spring Boot背后的魔力。
第2章”精通MVC架构”指导我们创建一个小的Twitter搜索引擎,同时,本章还涵盖了Spring MVCWeb架构的基础知识。
第3章”处理表单和复杂的URL映射”帮助你理解如何创建用户基本信息表单,本章介绍如何在服务端和客户端校验数据,并且让我们的应用支持多语言访问。
第4 章”文件上传与错误处理”将会指导你为基本信息表单添加文件上传功能,它阐述了如何在Spring MVC中恰当地处理错误并展示自定义的错误页面。
第5章”创建RESTful应用”阐述了RESTful架构的理念,它还帮助我们创建了一个可以通过HTTP 调用的用户管理API,这个过程中会看到帮助我们设计API 的工具,并且会讨论如何很简便地实现文档化。
第6 章”保护应用”将会指导我们如何保护应用,包括如何使用基本HTTP 认证保护RESTful API,以及如何保护登录页之后的Web 页面,它阐述了如何通过Twitter进行登录以及如何将会话保存在Redis中,从而允许我们的应用进行扩展。
第7章”单元测试与验收测试”帮助我们对应用进行测试。它讨论了测试与TDD,介绍了如何对控制器进行单元测试,如何使用现代的库设计端到端的测试。最后,介绍了Groovy如何提升测试的生产效率和可读性。
第8章”优化请求”对应用进行了优化。它包括缓存控制和Gzip,本章将教会我们如何把Twitter搜索结果缓存到内存和Redis中,以及如何对搜索实现多线程执行。除此之外,还会介绍如何实现Etag 和使用WebSocket
第9章”将Web应用部署到云中”会指导我们对应用进行部署,通过对比,阐述了不同PaaS 解决方案的差异。然后,介绍了如何将应用部署到Cloud FoundryHeroku中。
第10章”超越Spring Web"在整体上讨论了Spring生态系统,介绍了现代Web 应用的组成部分以及后续的发展方向。

阅读本书所需的前提条件

尽管我们将要构建的是一个很高级的应用,但是并不需要你安装很多的东西。
我们将要构建的应用需要Java 8
我们并不强制你使用Git,不过你绝对应该使用Git来对自己的应用进行版本控制。如果你希望将应用部署到Heroku 上,那么会需要用到它。另外,借助Git可以非常容易地回顾你的工作,通过查看代码的差异和历史来了解其演进过程。在第1 章中包含了很多开始使用Git的资源。
我还推荐你使用一个好的IDE。我们会看到如何使用Spring Tool Suite(免费)和IntelliJ``Idea(一个月的免费试用)实现快速起步。
如果你使用Mac 的话,应该了解一下Homebrew(http``://brew.sh)。通过使用这个包管理器,你可以安装本书中提到的所有工具。

本书为谁而作

本书最适合已经熟悉Spring 编程基础知识并迫切希望扩展其Web 技能的开发人员。建议你事先掌握一些Spring框架的知识。

示例代码下载

你可以通过账号,在http://www.packtpub.com下载所有你所购买的Packt 图书的示例代码文件。如果你是在其他途径购买的本书,那么可以访问http://www.packtpub.com/support并进行注册,这些文件会直接邮件发送给你。
对于本书的样例代码,你也可以通过https://github.com/Mastering-Spring-MVC-4/mastering-spring-mvc4进行下载。