Энтони Гонсалвес - Изучаем Java EE 7

Здесь есть возможность читать онлайн «Энтони Гонсалвес - Изучаем Java EE 7» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: СПб., Год выпуска: 2014, ISBN: 2014, Издательство: Питер, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Изучаем Java EE 7: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Изучаем Java EE 7»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java.
Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации 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 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Изучаем Java EE 7», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

@ThirteenDigits @Even

public class IsbnEvenGenerator implements NumberGenerator {…}

Точка внедрения использовала бы тот же самый синтаксис:

@Inject @ThirteenDigits @Even

private NumberGenerator numberGenerator;

Тогда внедрению будет подлежать только компонент, имеющий обе аннотации квалификатора. Названия квалификаторов должны быть понятными. Для приложения важно, чтобы квалификаторы имели правильные имена и степень детализации.

Альтернативы

Квалификаторы позволяют выбирать между множественными реализациями интерфейса во время развертывания. Но иногда бывает целесообразно внедрить реализацию, зависящую от конкретного сценария развертывания. Например, вы решите использовать имитационный генератор чисел в тестовой среде.

Альтернативы — это компоненты, аннотированные специальным квалификатором javax.enterprise.inject.Alternative. По умолчанию альтернативы отключены, и чтобы сделать их доступными для инстанцирования и внедрения, необходимо активизировать их в дескрипторе beans.xml. В листинге 2.14 показана альтернатива имитационного генератора чисел.

Листинг 2.14. Альтернатива имитационного генератора по умолчанию

@Alternative

public class MockGenerator implements NumberGenerator {

··public String generateNumber() {

····return "MOCK";

··}

}

Как видно из листинга 2.14, MockGenerator, как обычно, реализует интерфейс NumberGenerator. Он сопровождается аннотацией @Alternative, которая означает, что CDI обрабатывает его как альтернативу NumberGenerator по умолчанию. Как и в листинге 2.6, эта альтернатива по умолчанию могла бы использовать встроенный квалификатор @Default следующим образом:

@Alternative @Default

public class MockGenerator implements NumberGenerator {…}

Вместо альтернативы по умолчанию вы можете указать альтернативу с помощью квалификаторов. Например, следующий код сообщает CDI, что альтернатива тринадцатизначного генератора чисел — это имитация:

@Alternative @ThirteenDigits

public class MockGenerator implements NumberGenerator {…}

По умолчанию компоненты @Alternative отключены, и вам необходимо активизировать их явным образом в дескрипторе beans.xml, как показано в листинге 2.15.

Листинг 2.15. Активизация альтернатив вдескрипторе развертывания beans.xml

·······xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance"

·······xsi: schemaLocation="http://xmlns.jcp.org/xml/ns/javaee картинка 20

· ···························http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"

·······version="1.1" bean-discovery-mode="all">

··

····org.agoncal.book.javaee7.chapter02.MockGenerator

··

Что касается точки внедрения, ничего не меняется. Таким образом, на код вашего приложения ничто не влияет. Следующий отрывок кода содержит внедрение реализации генератора чисел по умолчанию. Если альтернатива активизирована, то MockGenerator, определенный в листинге 2.14, будет внедрен.

@Inject

private NumberGenerator numberGenerator;

У вас может быть несколько файлов beans.xml, объявляющих несколько альтернатив, в зависимости от вашей среды (разработка, поддержка готового приложения, тестирование и т. д.).

Производители данных

Я показал вам, как внедрять одни компоненты CDI в другие. Благодаря производителям данных вы также можете внедрять примитивы (такие как int, long, float и т. д.), массивы и любой POJO, не поддерживающий CDI. Под поддержкой CDI я имею в виду любой класс, упакованный в архив, содержащий файл beans.xml.

По умолчанию вы не можете внедрять такие классы, как java.util.Date или java.lang.String. Так происходит потому, что все эти классы упакованы в файл rt.jar (классы среды исполнения Java), а этот архив не содержит дескриптор развертывания beans.xml. Если в архиве в папке META-INF нет файла beans.xml, CDI не инициирует обнаружение компонента и POJO не будут обрабатываться как компоненты, а значит, и внедряться. Единственный способ внедрения POJO состоит в использовании полей и методов производителей данных, как показано в листинге 2.16.

Листинг 2.16. Поля иметоды производителей данных

public class NumberProducer {

··@Produces @ThirteenDigits

··private String prefix13digits = "13-";

··@Produces @ThirteenDigits

··private int editorNumber = 84356;

··@Produces @Random

··public double random() {

····return Math.abs(new Random(). nextInt());

··}

}

Класс NumberProducer в листинге 2.16 имеет несколько атрибутов и методов (все с аннотацией javax.enterprise.inject.Produces). Это означает, что все произведенные типы и классы теперь могут внедряться с помощью @Inject с использованием квалификатора (@ThirteenDigits, @EightDigits или @Random).

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Изучаем Java EE 7»

Представляем Вашему вниманию похожие книги на «Изучаем Java EE 7» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Изучаем Java EE 7»

Обсуждение, отзывы о книге «Изучаем Java EE 7» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x