您好,欢迎来到聚文网。 登录 免费注册
Java RESTful Web Service实战

Java RESTful Web Service实战

  • 装帧: 平装
  • 出版社: 机械工业出版社
  • 作者: 韩陆 著
  • 出版日期: 2016-08-01
  • 商品条码: 9787111542131
  • 版次: 2
  • 开本: 16开
  • 页数: 281
  • 出版年份: 2016
定价:¥59 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
本书系统、深度讲解了如何基于Java标准规范实现REST风格的Web服务,由拥有10余年开发经验的阿里云大数据架构师撰写,靠前版上市后广获赞誉,成为该领域的畅销书。第2版对全书进行了优化和重构,不仅根据近期新的技术版本对原有过时内容进行了更新,而且还根据整个技术领域的发展增添了新的内容。除此之外,还对靠前版中存在的不足进行了优化,使得内容更加与时具进、更加有价值。不仅深刻解读了近期新的JAX-RS标准和其API设计,以及Jersey的使用要点和实现原理,还系统讲解了REST的基本理论,更重要的是从实践角度深度讲解了如何基于Jersey实现完整的、安全的、高性能的REST式的Web服务,书中包含大量示例代码,实战性强。
全书共10章,包括JAX-RS2入门、REST API设计、REST请求处理、REST服务与异步、REST客户端、REST测试、微服务、容器化、JAX-RS调优、REST安全等内容。书中从基础概念开始,结合大量示例和实现代码,将REST理论与Java实现相结合,循序渐进地阐述Java REST式服务,为读者提供更精炼、更准确、更全面的参考。
作者简介
韩陆,资历Java技术专家,曾在用友(总部)、新浪、Avaya和Technicolor等知名企业从事研发工作。目前负责阿里云大数据产品的技术架构工作,实践经验很好丰富。
InfoQ社区编辑,利用业余时间,翻译了大量的新闻和文章,主要集中在技术架构、大数据研发、微服务、容器化、敏捷工程等领域。其中MESOS系列被InfoQ收录为电子书——《深入浅出Mesos》。同时,他也是《JSF和Richfaces使用指南》的作者,《Java EE 7 Essentials》的译者。
目录
第2版序一
第2版序二
第1版序一
第1版序二
前言
第1章 JAX-RS2入门
1.1 解读REST
1.1.1 一种架构风格
1.1.2 基本实现形式
1.2 解读REST服务
1.2.1 REST式的Web服务
1.2.2 对比RPC风格
1.2.3 对比MVC风格
1.3 解读JAX-RS标准
1.3.1 JAX-RS2标准
1.3.2 JAX-RS2的目标
1.3.3 非JAX-RS2的目标
1.3.4 解读JAX-RS元素
1.4 Jersey项目概要
1.4.1 获得Jersey
1.4.2 Jersey问答
1.4.3 Jersey项目管理
1.4.4 Jersey许可
1.4.5 Jersey的模块
1.4.6 GlashFish项目
1.5 快速实现Java REST服务
1.5.1 第一个REST服务
1.5.2 第一个Servlet容器服务
1.6 快速了解Java REST服务
1.6.1 REST工程类型
1.6.2 REST应用描述
1.7 Java领域的其他REST实现
1.7.1 JAX-RS的其他实现
1.7.2 其他的REST实现
1.8 REST调试工具
1.8.1 命令行调试工具
1.8.2 基于浏览器的图形化调试插件
1.9 本章小结
第2章 REST API设计
2.1 统一接口
2.1.1 GET方法
2.1.2 PUT方法
2.1.3 DELETE方法
2.1.4 POST方法
2.1.5 WebDAV扩展方法
2.2 资源定位
2.2.1 资源地址设计
2.2.2 @QueryParam注解
2.2.3 @PathParam注解
2.2.4 @FormParam注解
2.2.5 @BeanParam注解
2.2.6 @CookieParam注解
2.2.7 @Context注解
2.3 传输格式
2.3.1 基本类型
2.3.2 文件类型
2.3.3 InputStream类型
2.3.4 Reader类型
2.3.5 XML类型
2.3.6 JSON类型
2.4 连通性
2.4.1 过渡型链接
2.4.2 结构型链接
2.5 处理响应
2.5.1 返回类型
2.5.2 处理异常
2.6 内容协商
2.6.1 @Produces注解
2.6.2 @Consumes注解
2.7 本章小结
第3章 REST请求处理
3.1 Jersey的AOP机制
3.2 Providers详解
3.2.1 实体Providers
3.2.2 上下文Providers
3.3 REST请求流程
3.4 REST过滤器
3.4.1 ClientRequestFilter
3.4.2 ContainerRequestFilter
3.4.3 ContainerResponseFilter
3.4.4 ClientResponseFilter
3.4.5 访问日志
3.5 REST拦截器
3.6 绑定机制
3.6.1 名称绑定
3.6.2 动态绑定
3.7 优先级
3.8 本章小结
第4章 REST服务与异步
4.1 为什么使用异步机制
4.1.1 服务器异步机制
4.1.2 客户端异步机制
4.2 JAX-RS2的异步机制
4.2.1 服务端实现
4.2.2 客户端实现和测试
4.3 基于HTTP1.1的异步通信
4.3.1 Polling技术
4.3.2 Comet技术
4.3.3 Web Hook异步通信
4.3.4 SSE技术
4.4 基于HTML5的异步通信
4.4.1 SSE的原理
4.4.2 发布—订阅模式的实现
4.4.3 广播模式的实现
4.4.4 WebSocket技术
4.5 本章小节
第5章 REST客户端
5.1 客户端接口
5.1.1 Client接口
5.1.2 WebTarget接口
5.1.3 Invocation接口
5.2 连接池
5.2.1 资源释放
5.2.2 连接器
5.2.3 HTTP连接池
5.3 封装Client
5.4 请求Spring Boot微服务
5.4.1 不同的JSON解析方式
5.4.2 完整示例
5.5 JavaScript客户端
5.5.1 jQuery客户端
5.5.2 AngularJs客户端
5.6 本章小结
第6章 REST测试
6.1 Jersey测试框架
6.2 单元测试
6.2.1 集成Spring的单元测试
6.2.2 异步测试
6.3 集成测试
6.4 日志增强
6.5 本章小结
第7章 微服务
7.1 微服务技术栈
7.1.1 服务发现
7.1.2 可伸缩性
7.1.3 回到起点
7.2 REST服务与Spring Boot
7.2.1 Bootiful
7.2.2 RESTful
7.2.3 Actuator
7.3 REST服务与Spring Cloud
7.3.1 Spring Cloud Zookeeper
7.3.2 Spring Cloud Consul
7.3.3 Spring Cloud Etcd
7.4 本章小结
第8章 容器化
8.1 容器技术
8.1.1 容器
8.1.2 Docker技术栈
8.1.3 容器文化
8.2 REST服务与容器
8.2.1 开始容器化之路
8.2.2 开发自测容器化
8.3 容器化微服务
8.3.1 Zookeeper
8.3.2 Kafka
8.3.3 微服务
8.3.4 Nginx
8.4 本章小结
第9章 JAX-RS调优
9.1 使用缓存优化负载
9.1.1 缓存协商
9.1.2 条件GET
9.1.3 REST缓存实践
9.1.4 ab测试
9.2 使用版本号优化服务
9.2.1 何时使用版本号
9.2.2 如何使用版本号
9.3 使用参数配置优化服务
9.3.1 通用配置
9.3.2 服务器端和客户端配置类
9.4 Java虚拟机调优
9.4.1 虚拟机概述
9.4.2 内存溢出与内存泄漏
9.5 本章小结
第10章 REST安全
10.1 身份认证
10.1.1 基本认证
10.1.2 摘要认证
10.1.3 表单认证
10.1.4 证书认证
10.2 资源授权
10.2.1 容器管理权限
10.2.2 应用管理权限
10.3 认证与授权实现
10.3.1 基本认证与JDBCRealm
10.3.2 摘要认证与UserDatabase-Realm
10.3.3 表单认证与DataSource-Realm
10.3.4 Form认证和JAASRealm
10.3.5 证书认证与UserDatabase-Realm
10.4 JAX-RS2实现
10.4.1 Application类
10.4.2 资源类
10.4.3 资源测试类
10.5 REST服务与OAuth2
10.5.1 OAuth2概述
10.5.2 OAuth2流程
10.5.3 OAuth2实现
10.6 本章小结
参考资料
摘要
Preface  前    言本书第1版发行后,Jersey版本从2.9更新到了2.22.2,此间REST服务得到了更广泛的认可和使用。与此同时,Java 8、Spring Boot和Docker的爆发式发展,使得Java领域的RESTful开发有了新的发展。
    第2版变更迫不及待,这是我想为读者更新REST服务新发展的心情,遂有此第2版。首先,我们要拥抱Java 8。lambda表达式在大数据处理,尤其在Spark中是默认的语法表达;Java 8带给我们的不只是“语法糖”,而是开发和执行效率的提升。我从实践中得到了其中的好处,也希望读者能跟上时代的步伐。其次是Spring Boot,这是Java领域实现微服务的事实标准框架。我已经无法回去适应部署war到Tomcat的时代,请保守的读者原谅我的情不自禁。再次是Docker,我希望读者具备使用Docker完成开发自测阶段的一切,也希望读者能运用Docker实现微服务的部署和可伸缩实践。
    从第1版第1次印刷至今,我始终关注着读者的反馈。邮件都做了认真的回复。根据读者的反馈,我在第2版中重新梳理了章节的结构,删除了第1版中反馈不好的第9章和第11章,调整后的章节与第1版的对应关系如下。
    第1章合并了第1版的第1章和第2章。
    第2章对应第1版第3章。
    第3章对应第1版第4章。
    第4章包含了第1版的第8章。
    第5章在第1版的基础上做了更新。
    第6章包含了第1版的第7章,并升级了第1版2.5节的示例。
    第7章和第8章是新增章节。
    第9章对应第1版第10章。
    第10章包含了第1版的第6章。
    与许多技术作者一样,写书的时间是挤出来的。如果精力尚可,每晚7点到9点、11点到凌晨2点是我动笔的时间,偶尔,早上6点到8点我也会赶赶。写书成为我梳理、总结和思考的最佳方式。
    于此过程,我总结了3句话与读者共享。搞技术的人,是停不下来的。时而要开疆拓土,学习和研究新的知识点,弥补自己的技术债;时而要运筹帷幄,将知识点梳理成线,编织成网;时而要深耕细作,面对当下要攻坚的业务所对应的知识点,深入研究、反复实践、勤于思考、勇于交流。只有这样,我们才可以坦然地用手推一下眼镜,谦虚地告诉别人,“其实我是个程序员”。
    源代码本书提供源代码下载,地址是https://github.com/feuyeux/jax-rs2-guide-II。
    勘误和交流本书的勘误会在https://github.com/feuyeux/jax-rs2-guide-II/wiki发布,欢迎读者批评指正。
    我的邮箱:feuyeux@163.com我的新浪微博:六爷1_1致谢感谢我的妻子Caroline和女儿Doris一直以来的关心和陪伴。
    感谢华章公司的杨福川对我的专业指导。感谢华章公司编辑高婧雅、李艺专业和耐心的审阅和指正。
    感谢阿里巴巴速卖通中间件团队在微服务、容器化上对我的影响。感谢雷卷、许晓斌在DDD、Spring Boot和Docker上对我的帮助。感谢Technicolor的敏捷团队、阿里巴巴国际站测试架构团队,前者带我悟得Jersey,后者给我深入实践的机会。
    最后我要感谢阿里巴巴阿里云事业群大安全的各位兄弟对我的支持。我正在这里,与大家一天天、一步步将微服务和容器化落地生花。

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网