gpt4 book ai didi

jaxb - 什么是 JAXB 和 JAXRS?它们有什么关系?

转载 作者:行者123 更新时间:2023-12-03 13:31:50 25 4
gpt4 key购买 nike

对不起这个直率的问题。但是许多人日复一日地使用这两个术语,但我不知道。我对此进行了一些研究,并分别知道它是什么。但不明白它是如何相关的。我将首先分享我对这两个的理解。

JAXB is XML-to-Java binding technology enabling transformations between schema and Java objects and between XML instance documents and Java object instances. Internally JAXB does all this conversions between xml and java . This is a parser of xml and then it knows what component in xml corresponds to what in java and it breaks . Conversion of this answer from JAXB is done by tools like xjc ( or codgen plugin) . Mapping may be like

xsd:string java.lang.String

xsd:integer java.math.BigInteger

JaxRs is different . This is set of specifications for handling requests . Meaning that it says "GET("/foo") " means handle a get call with url /foo . It only states that . How it is done ? Yes , that is called implementation of this spec . There are number of implementations like restlet , resteasy , jersey , apache cxf etc . This is analogus to logic and way you implement in maths . the algorithm idea is bucket search .This can be implemented in any way . In java terms JaxRs is interface and these 4 restlet , resteasy , jersey , apache cxf are implementations of the interface .



现在请说我的理解是否正确。然后告诉他们是如何相关的。请帮忙 。如果可能的话,图片解释会更有帮助。

最佳答案

你的理解基本正确。 JAXB 和 JAX-RS 都是具有多种实现的 Java Community Process (JCP) 标准。

JAXB - 定义标准化的元数据和运行时 API,用于将 Java 域对象转换为 XML。

JAX-RS - 定义用于创建 RESTful 服务的标准化元数据和运行时 API。默认情况下为 application/xml媒体类型 JAX-RS 将使用 JAXB 将对象转换为 XML。

示例

在以下示例中,当 GET执行操作,JAX-RS 实现将返回 Customer .将使用 JAXB 实现来转换 Customer 的实例。到客户端实际接收的 XML。

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;

@Path("/customers")
public class CustomerResource {

@GET
@Produces(MediaType.APPLICATION_XML)
@Path("{id}")
public Customer read(@PathParam("id") int id) {
Customer customer = new Customer();
customer.setId(id);
customer.setFirstName("Jane");
customer.setLastName(null);

PhoneNumber pn = new PhoneNumber();
pn.setType("work");
pn.setValue("5551111");
customer.getPhoneNumbers().add(pn);

return customer;
}

}

关于jaxb - 什么是 JAXB 和 JAXRS?它们有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17980596/

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