gpt4 book ai didi

java - 使用在规范 (JAX-RS) 中定义或在实现 (Jersey) 中定义的类?

转载 作者:行者123 更新时间:2023-11-30 10:07:43 24 4
gpt4 key购买 nike

我是在 Java 中使用 REST 的新手。在检查用 java 实现 REST 服务的应用程序时,我看到了在 javax.ws.rs 包中定义的类。

据我了解,JAX-RS 是一个规范,为了使用它,您需要一个实现,例如 Jersey。

为什么我看到应用程序中使用的类是 JAX-RS 类,例如 javax.ws.rs.core.Response 类。这些类(class)不应该像前面所说的那样是 Jersey 类(class)吗?或者是否可以直接使用“规范类”?

我以为我会看到的所有类都是来自 Jersey API 的类,但事实并非如此。有人可以解释何时使用规范与实现中的类吗?

最佳答案

javax.ws.rs.core.Response 是 JAX-RS API 的一部分,即规范

它是一个抽象类,因此不能被实例化。

Jersey 实现 Responsecom.sun.jersey.core.spi.factory.ResponseImpl 中。实际名称并不重要,因为您应该使用 ResponseBuilder JAX-RS API 实例化一个 Response

例如:

Response res = Response.ok().build();

这将在内部查找一个实现并将其实例化。

(如果您只包含 JAX-RS API,该调用将在运行时失败)

关于java - 使用在规范 (JAX-RS) 中定义或在实现 (Jersey) 中定义的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54111247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com