Что такое JAXB и JAXRS? Как они связаны?
извините за этот тупой вопрос . Но многие используют эти 2 термина изо дня в день, но я не знаю .Я провел некоторое исследование по этому вопросу и знал, что это такое отдельно . Но не понимаю, как это связано . Сначала я поделюсь тем, что понял об этих двоих .
JAXB-это технология привязки XML к Java, позволяющая преобразования между объектами schema и Java и между документами экземпляра XML и Java-объектов. Внутренне JAXB делает все эти преобразования между xml и java . Это парсер xml, а затем он знает, что компонент в xml соответствует тому, что в java и ломается . Преобразование этого ответа из JAXB выполняется такими инструментами, как xjc ( или плагин codgen). Отображение может быть как
xsd: строка java.ленг.Строка
xsd: целочисленная java.математика.Типа BigInteger
разное . Это набор спецификаций для работы запросы. Это значит, что он говорит: "GET ("/foo") " означает обрабатывать get звонить с URL-адрес с именем /foo . В нем говорится только об этом . Как это делается ? Да, это называется реализацией данной спецификации . Есть количество реализации, такие как restlet, resteasy, jersey, apache cxf и т. д. Это аналог логики и способ ее реализации в математике . этот идея алгоритма-поиск по ведру .Это может быть реализовано любым способом . В терминах java jaxrs-это интерфейс, и эти 4 restlet, resteasy , Джерси, apache cxf являются реализациями взаимодействие.
теперь, пожалуйста, скажите, правильно ли я понимаю . Тогда расскажите, как они связаны . Пожалуйста помочь. Если возможно, наглядное объяснение будет более полезным.
1 ответов
ваше понимание в основном правильно. JAXB и JAX-RS являются стандартами Java Community Process (JCP) с несколькими реализациями.
JAXB - определяет стандартизированные метаданные и API среды выполнения для преобразования объектов домена Java в / из XML.
JAX-RS - определяет стандартизированные метаданные и API среды выполнения для создания служб RESTful. По умолчанию для application/xml
тип носителя JAX-RS будет использовать JAXB для преобразования объектов в/из XML.
пример
в следующем примере, когда GET
выполняется операция реализация JAX-RS вернет Customer
. JAXB impl будет использоваться для преобразования этого экземпляра Customer
к XML, который клиент фактически получит.
package org.example.service;
import javax.ejb.*;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import org.example.model.*;
@Stateless
@LocalBean
@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;
}
}