1 企业级Spring应用的搭建 1
引言 1
安装Eclipse JEE开发者版本与Java SE 8 2
为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
定义通用WebContentInterceptor 82
使用AngularJS设计客户端MVC模式 88
3 Java持久化与实体 100
引言 100
在Spring中配置Java持久化API 101
定义有用的EJB3实体和关系 105
使用JPA与Spring Data JPA 115
4 为无状态架构构建REST API 122
引言 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