Foreword
第1版序二
半年前初识韩陆的时候,我们就聊到他正在写的这本书,当得知我从2006年就参与了Apache CXF开发,他立即邀请我为他的新书写序,我也就欣然答应了。
Apache CXF作为JAXWS以及JAX-RS规范的实现框架,已经成为很多Web服务开发者必选的开发框架。作为这一框架的开发维护者之一,我的日常工作经常需要熟悉这些JSR规范,并实现JSR所定义的API,解决最终用户的使用问题。
熟悉Java的人大多都听说过JSR(Java Specification Requests)、JCP(Java Community Process),通过JSR可以就Java某一方面的应用定义一组标准的API或者服务。对于最终用户来说,他们的代码只需要调用JSR定义的标准API,不做任何修改就可以调用不同的JSR实现。这里常见的例子就是Java Servlet应用,用户开发的Web应用可以不做任何修改就部署到Tomcat、JBoss等不同的Web容器中。
JAXRS是JCP为Java RESTful Web Service定义的一套API。由于Web服务的描述模型与Java类和接口有一定的差距,JAX-RS定义了很多annotation,通过这些annotation我们可以很方便地将Java类描述成为相关的REST服务。由于RESTful Web Service通常需要部署到Web容器中,JAX-RS也定义了相关服务来发现部署到容器中的JAX-RS应用。
读过JSR规范的朋友或多或少都会有这样的体会,JSR作为规范文档,其目标是将API定义以及实现功能描述清楚、完备,其目标读者是相关API的实现人员,或者是相关API的高级使用人员。如果读者对相关的背景知识还不熟悉的话,JSR文档读起来会比较晦涩而且难以理解。加之绝大部分JSR文档都没有相关的中文翻译,对于绝大多数初学者来说,通过阅读JSR文档来学习相关的API的知识是一个艰难的过程。
如果我们想要对JAX-RS规范有一个比较快速并且全面的了解应该怎么办呢?一般来我们可以通过JSR的相关参考实现入手,我们不但可以通过运行相关的参考实现的例子快速入门,还可以通过跟踪相关的代码对实现细节有一个全面的了解。韩陆的这本新作以JAX RS的参考实现Jersey为蓝本,由浅入深地向大家介绍了JAX-RS的由来,以及与RESTful Web服务开发的相关API,并结合实例分享了作者的实战经验。
好了,现在打开你熟悉的IDE工具,加载Jersey代码库,沿着本书的指引去探索Java RESTful Web Services开发世界吧。
RedHat 姜宁