Энтони Гонсалвес - Изучаем Java EE 7
- Название:Изучаем Java EE 7
- Автор:
- Жанр:
- Издательство:Питер
- Год:2014
- Город:СПб.
- ISBN:978-5-496-00942-3
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Энтони Гонсалвес - Изучаем Java EE 7 краткое содержание
Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода.
Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP). В ней вы найдете максимально ценную информацию, изложенную с точки зрения эксперта по технологиям Java для предприятий.
Благодаря этой книге вы:
— познакомитесь с новейшей версией платформы Java EE;
— исследуете и научитесь использовать API EJB и JPA — от компонентов-сущностей, компонентов-сеансов до компонентов, управляемых сообщениями, и многого другого;
— откроете для себя API для разработки на веб-уровне, в частности JSF, Facelet и Expression Language;
— научитесь обращаться с веб-службами SOAP и RESTful, а также с другими службами, доступными в новейшей версии Java EE;
— узнаете, как создавать динамические пользовательские интерфейсы для корпоративных и транзакционных Java-приложений.
Изучаем Java EE 7 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
В центре JAXB API находится класс javax.xml.bind.JAXBContext. Этот абстрактный класс управляет связыванием между XML-документами и объектами Java, поскольку он предоставляет:
• класс Unmarshaller, который преобразует XML-документ в граф объектов и, возможно, проверяет XML;
• класс Marshaller, который принимает граф объектов и трансформирует его в документ XML.
Например, чтобы преобразовать наш объект CreditCard в документ XML (листинг 12.10), следует использовать метод Marshaller.marshal(). Этот метод принимает в качестве параметра объект и выполняет операцию маршалинга; конечный тип объекта может быть разным (StringWriter будет хранить строковое представление документа XML, а FileOutputStream сохранит его в файл).
public class Main {
··public static void main(String[] args) throws JAXBException {
····CreditCard creditCard = new CreditCard("1234", "12/09", 6398, "Visa");
····StringWriter writer = new StringWriter();
····JAXBContext context = JAXBContext.newInstance(CreditCard.class);
····Marshaller m = context.createMarshaller();
····m.marshal(creditCard, writer);
····System.out.println(writer.toString());
··}
}
Данный код создает экземпляр типа JAXBContext с помощью статического метода newInstance(), которому передается корневой класс, для которого необходимо выполнить маршалинг (CreditCard.class). Из созданного объекта Marshaller затем вызывается метод marshal(), который генерирует XML-представление (см. листинг 12.8) объекта, представляющего информацию о кредитной карте, в объект типа StringWriter и отображает его. Такой же подход можно применить для демаршалинга XML-документа в объект с помощью метода Unmarshaller.unmarshal().
Metro, пример реализации JAXB, имеет и другие инструменты, в частности компилятор схем (xjc) и генератор схем (schemaGen). Хотя маршалинг/демаршалинг работает с объектами и XML-документами, компилятор и генератор схем работают с классами и XML-схемами. Эти инструменты можно использовать из командной строки (поставляются в комплекте с Java SE 7) или как цель Maven.
Аннотации
JAXB во многом похож на JPA. Тем не менее вместо преобразования объектов в форму, пригодную для записи в базу данных, JAXB выполняет преобразование в XML-документ. Кроме того, как и JPA, JAXB определяет набор аннотаций (в пакете javax.xml.bind.annotation), позволяющих настроить такое преобразование, и зависит от конфигурации с помощью исключений для минимизации работы разработчика. Если постоянные объекты должны иметь аннотацию @Entity, в JAXB ее аналогом является @XmlRootElement (листинг 12.11).
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class CreditCard {
··@XmlAttribute(required = true)
··private String number;
··@XmlElement(name = "expiry-date", defaultValue = "01/10")
··private String expiryDate;
··private String type;
··@XmlElement(name = "control-number")
··private Integer controlNumber;
Интервал:
Закладка: