Spring MVC实战
标 签:程序设计 计算机/网络 其他
Spring MVC是一个面向Web应用的轻量级框架。作为Spring框架的一部分,它天然扩展了Spring并为Web相关问题提供了一致的解决方案。
通过设计Maven模块,你将会实现一个企业级、无状态的REST应用。本书的独特之处在于从Spring生态圈中收集了大量的实用开发技术。你将会通过超媒体与HATEOAS来实现客户与产品之间的无状态会话,并掌握如何配置基于WebSocket的消息服务。*后,你将会学到如何创建并组织不同层次的自动化测试。
■ 使用Maven构建项目,并创建自测试、领域特定、可部署的Web归档。
■ 使用AngularJS与Bootstrap为响应式与强大的前端生成模板。
■ 构建高性能、无状态的RESTful与超媒体应用来支持多客户体验。
■ 使用BASIC认证模式与OAuth2通过REST进行认证。
■ 使用Swagger与Swagger UI来文档化并发布REST API。
■ 实现Spring Web应用的可伸缩。
■ 通过WebSocket与STOMP消息进行通信。
《Spring MVC实战》由浅入深地介绍了当今流行的Java Web框架Spring MVC的方方面面,从基础的环境搭建到微服务设计与架构,再到持久化、RESTAPI构建、认证与测试……涵盖了SpringMVC诸多重要且常用的特性。值得一提的是,《Spring MVC实战》针对Spring MVC的每一项特性都提供了完整可运行的示例代码,可以帮助读者更好地掌握这项技术。
无论是Spring MVC的初学者,还是拥有一定经验的开发人员,都能够从《Spring MVC实战》中获得启发,更好地理解Spring MVC这一Web开发“利器”。
Alex Bretet 是一位知名的Java 与Spring 集成工程师,目前就职于Thunderhead,这是一家全球知名的SaaS 提供商。他拥有能源、保险、财务与互联网等多个领域的丰富开发经历。受到互联网通信能力与诸多初创公司的感染,他深信开发所能带来的价值(志趣相同的一帮人能在很短的时间内实现令人难以置信的目标)。他还是开源,特别是Spring 的拥护者,其实用主义持续不断地“瓦解”着现有的做法,并提供了颇具价值的替代方法。可以通过alex.bretet@gmail.com 与作者取得联系,或者在Twitter 上关注@abretet。
1 企业级Spring应用的搭建.1
引言 1
安装Eclipse JEE开发者版本与Java SE 82
为Eclipse配置Java 8、Maven 3和Tomcat 8 5
定义Maven的项目结构 12
安装Spring、Spring MVC和Web结构24
2 使用Spring MVC设计微服务架构35
引言35
使用简单URL映射配置控制器 36
使用ViewResolver配置回退控制器 49
使用Bootstrap创建并自定义响应式单页面Web设计.53
使用JSTL在视图中显示模型72
定义通用WebContentInterceptor82
使用AngularJS设计客户端MVC模式88
3 Java持久化与实体100
引言 100
在Spring中配置Java持久化API 101
定义有用的EJB3实体和关系105
使用JPA与Spring Data JPA 115
4 为无状态架构构建RESTAPI122
引言 122
绑定请求与编排响应123
配置内容协商(JSON与XML等)133
添加分页、过滤器与排序功能 138
全局处理异常149
使用Swagger生成文档与公开API 156
5 使用Spring MVC进行认证.163
引言 163
配置Apache HTTP服务器来代理Tomcat服务器 163
修改用户和角色以适应Spring Security 172
基于BASIC的认证方式.183
第三方OAuth2认证193
在REST环境中保存认证信息 211
服务与控制器授权 220
6 实现HATEOAS.235
引言 235
将DTO改造成Spring HATEOAS资源 236
为超媒体驱动的API创建链接 244
JPA实体的暴露策略 252
通过OAuth从第三方API获取数据259
7 开发CRUD操作与校验266
引言 266
为所有HTTP方法扩展REST处理程序.267
使用Bean Validation校验资源 278
REST消息与内容的国际化.292
使用HTML5和AngularJS校验客户端表单 302
8 通过WebSocket与STOMP进行通信.308
引言 308
通过基于SockJS的STOMP使社交事件流媒体化309
使用RabbitMQ作为多协议消息代理 322
将任务放入RabbitMQ并通过AMQP消费任务 328
通过Spring Session和Redis保证消息安全334
9 测试与故障排除351
引言 351
通过Flyway实现数据库迁移自动化352
使用Mockito和Maven Surefire进行单元测试 357
使用Cargo、Rest-assured和Maven Failsafe进行集成测试 364
在集成测试中注入Spring Bean 373
使用Log4j2记录日志的现代应用 377