22

很长一段时间以来,我一直试图弄清楚如何使用 JAX-RS。我从非常基本的概念开始,然后逐渐理解注解式编程,@Path、@Get、@Post 等的含义。

据我了解,至于很多地方都提到过,JAX-RS 是一个专注于将 Java 注释应用于普通 Java 对象的框架(第 27 页,Bill Burke,RESTful Java)。

然后,我对此感到困惑。如果 JAX-RS 本身是一个定义处理注解的 API 以实现 RESTful Web 服务的框架,那么“Jersey”和“JBoos Resteasy”等“JAX-RS 的实现”是什么意思。JAX-RS 之上的另一层?为什么我们需要它们?

有人可以给我一些关于它的见解吗?非常感谢!!!

4

2 回答 2

31

JAX-RS 是 Java Specification Request 311 ( JSR-311 ) 中定义的标准,Jersey / RESTEasy 是它的实现。

作为实现意味着规范说“如果你@GET("/foo")使用一个方法 ( bar()),你可以访问数据 X”——现在在一个应用服务器中,有人需要进入并实际读取你部署的代码,使用@GET注释解析字节码和然后,如果用户实际浏览到例如http://localhost/foo,则获取此 Web 请求以到达bar()并将返回值bar()转换为 http 答案(例如,以 XML 或 JSON 表示形式)。

所以名为“JAX-RS”的规范只提供了例如@GET的语法和语义,但是解析请求、调用正确的方法、编组结果值等工作需要由一个实现了规格。

该标准 2.0 版的工作已从 JRS-339开始。

另见http://en.wikipedia.org/wiki/Jax-rs

于 2011-02-15T15:51:12.220 回答
27

JAX-RS 是使用 Java 的 RESTful Web 服务规范。Java EE 中包含一个参考实现,但由于它是一个规范,因此可以编写其他框架来实现该规范,包括 Jersey、Resteasy 等。

于 2011-02-15T15:51:36.470 回答