Читаем Изучаем 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-приложений.
Компьютеры и Интернет / Программирование, программы, базы данных / Зарубежная компьютерная литератураAntonio Goncalves
Beginning Java EE 7
Научный редактор
Переводчики
Технический редактор
Литературные редакторы
Художники
Корректоры
Верстка
Copyright © 2013 by Antonio Goncalves
© Перевод на русский язык ООО Издательство «Питер», 2014
© Издание на русском языке, оформление ООО Издательство «Питер», 2014
Java EE 7 основана на предыдущих успешных версиях этой платформы. Упрощенный API сервиса сообщений Java значительно повышает продуктивность разработчика, широкое использование контекстов и внедрения зависимостей (CDI) и сокращение шаблонного кода обеспечивают более связанную интегрированную платформу. Java EE 7 также включает такие технологии, как WebSocket, JSON, Batch и Concurrency, весьма существенные для современной разработки веб-приложений. Все это сокращает необходимость в сторонних фреймворках, значительно облегчая приложения.
Энтони сыграл очень важную роль в формировании платформы Java EE 7. Благодаря своим глубоким техническим знаниям он принял активное участие в составлении спецификаций во время двух ключевых запросов на спецификацию Java (платформа и Enterprise JavaBeans 3.2). В документах он выделил несколько пунктов, что сделало их более простыми для понимания. Он также участвовал в разъяснительных совещаниях при поддержке комитета Java Community Process (JCP), а также входил в состав данного комитета.
Энтони возглавляет парижскую группу пользователей Java; работая консультантом, он использует Java EE для решения повседневных проблем. С энтузиазмом и преданностью своему делу он проводит конференцию Devoxx France. Кроме того, несколько лет назад он написал книгу о Java EE 5 на французском языке, а после — получившую высокое признание книгу «Введение в платформу Java EE 6 с GlassFish 3»
Книга содержит несколько практических примеров кода, с которых можно начать изучение. Для развертывания примеров используется GlassFish, но также подойдет любой сервер приложений, совместимый с Java EE 7. Все представленные образцы кода также доступны на GitHub. Если вы искали практический учебник, написанный одним из экспертов по этой платформе, названный источник вам подойдет.
Энтони Гонсалвес — старший системный архитектор из Парижа. Выбрав Java-разработки основным направлением своей карьеры в конце 1990-х, он с тех пор посетил множество стран и компаний, где теперь работает консультантом по Java EE. В прошлом консультант компании BEA, Энтони является экспертом по таким серверам приложений, как WebLogic, JBoss и, конечно же, GlassFish. Он приверженец решений с открытым исходным кодом и даже принадлежит к парижскому объединению разработчиков таких решений (OSSGTP). Энтони также является одним из создателей и руководителей парижской группы пользователей Java, а с недавних пор еще и конференции Devoxx France.
Свою первую книгу по Java EE 5 на французском языке Энтони написал в 2007 году. Тогда же он присоединился к комитету JCP, чтобы стать экспертом в различных запросах на спецификацию Java (Java EE 6, JPA 2.0 и EJB 3.1), и выпустил книгу «Изучаем Java EE 6»
За последние несколько лет Энтони выступал с докладами преимущественно по Java EE на международных конференциях, включая JavaOne, Devoxx, GeeCon, The Server Side Symposium, Jazoon, а также во многих группах пользователей Java. Он также написал множество технических документов и статей для IT-сайтов (DevX) и журналов (Programmez, Linux Magazine). C 2009 года он входил в состав французского Java-подкаста под названием Les Cast Codeurs. За все свои заслуги перед Java-сообществом Энтони был выбран Java-чемпионом.
Энтони окончил Парижскую консерваторию искусств и ремесел (по специальности «Инженер информационных технологий»), Брайтонский университет (со степенью магистра точных наук по объектно-ориентированному проектированию) и Федеральный университет Сан-Карлоса в Бразилии (магистр философии по распределенным системам).
Вы можете подписаться на страницу Энтони в «Твиттере» (@agoncal) и в его блоге (www.antoniogoncalves.org).
Массимо Нардоне получил степень магистра точных наук в области информатики в Университете Салерно, Италия. В настоящее время он является сертифицированным аудитором PCIQSA и работает старшим ведущим архитектором по IT-безопасности и облачным решениям в компании IBM в Финляндии, где в его основные обязанности входит облачная и IT-инфраструктура, а также контроль и оценка надежности системы защиты. В IBM Массимо также руководит финской командой исследовательских разработок (FIDTL). Имеет следующие IT-сертификаты: ITIL (Information Technology Infrastructure Library), Open Group Master Certified IT Architect и Payment Card Industry (PCI) Qualified Security Assessor (QSA). Он является экспертом в области закрытых, открытых и локальных облачных архитектур.
У Массимо более 19 лет опыта в области облачных решений, IT-инфраструктуры, мобильных и веб-технологий и безопасности как на национальных, так и на международных проектах на должностях руководителя проекта, инженера-программиста, инженера исследовательского отдела, главного архитектора по безопасности и специалиста по программному обеспечению. Он также был приглашенным лектором и методистом по практическим занятиям в Лаборатории сетевых технологий Хельсинкского политехнического института (впоследствии вошедшего в состав Университета Аалто).
Массимо хорошо владеет методологиями и приложениями для тестирования протоколов безопасной передачи данных, а также занимается разработками мобильных и интернет-приложений с использованием новейших технологий и многих языков программирования.
Массимо был техническим редактором множества книг, издающихся в сфере информационных технологий, например по безопасности, веб-технологиям, базам данных и т. д. Он обладает несколькими международными патентами (PKI, SIP, SAML и Proxy areas).
Он посвящает эту книгу своей любимой жене Пии и детям Луне, Лео и Неве.
Вы держите в руках мою третью книгу о платформе Java EE. Должен вам сказать, для того чтобы написать третью по счету книгу, надо быть немного ненормальным… а еще находиться в окружении людей, которые помогают вам чем могут (чтобы вы не сошли с ума окончательно). Самое время сказать им спасибо.
Прежде всего, я хочу поблагодарить Стива Англина из издательства Apress за очередную предоставленную мне возможность написать книгу для этой замечательной компании. В процессе ее написания мне постоянно приходилось сотрудничать с Джилл Балзано, Катлин Саливан и Джеймсом Маркхемом, которые редактировали книгу и давали мне ценные советы. Спасибо Массимо Нардоне за тщательную техническую проверку, позволившую улучшить книгу.
Отдельное спасибо ребятам из моей технической команды, которые помогали мне и давали ценные комментарии. Алексис Хасслер живет в Божоле во Франции; он программист-фрилансер, тренер и руководитель группы пользователей Java в Лионе. Брис Лепорини — опытный инженер, в последние десять лет специализируется на Java-разработках. Он обожает запускать новые проекты, повышать производительность приложений и обучать начинающих программистов. Мэтью Анселин — разработчик, который любит Java, виртуальную машину Java, свой Mac-бук и свою гитару, а также входит в состав экспертной группы по инструментарию CDI 1.1 и работает с CDI по технологии OSGi. Антуан Сабо-Дюран, старший инженер-программист в компании Red Hat и технический руководитель на фреймворке Agorava, внес существенный вклад в развитие проектов с использованием CDI. Я с большим удовольствием работал с такими компетентными и веселыми старшими разработчиками.
Я также хочу поблагодарить Юниса Теймури, совместно с которым была написана глава 12 о XML и JSON.
Для меня большая честь, что предисловие к этой книге написал Арун Гупта. Его вклад в Java EE бесценен, как и его технические статьи.
Спасибо моему корректору Трессану О’Донахью, благодаря усилиям которого книга приобрела литературный язык.
Схемы, приведенные в этой книге, были составлены в приложении Visual Paradigm. Я хочу поблагодарить сотрудников Visual Paradigm и JetBrains за бесплатную лицензию на их замечательные продукты.
Я крепко целую любимую дочь Элоизу. Она — мой самый большой подарок в жизни.
Я не написал бы эту книгу без помощи и поддержки всего сообщества Java-разработчиков: блогов, статей, рассылок, форумов, твитов… и, в частности, без тех, кто занимается платформой Java EE.
Отдельное спасибо тебе, Бетти, за то, что ты дарила мне свет в темные времена и силу, когда я ослабевал.
Я также часто вспоминаю друга Бруно Реау, который покинул нас так рано.
В сегодняшнем мире бизнеса приложения должны осуществлять доступ к данным, реализовывать бизнес-логику, добавлять уровни представления данных, быть мобильными, использовать геолокацию и взаимодействовать с внешними системами и онлайн-сервисами. Именно этого пытаются достичь компании путем минимизации затрат и применения стандартных и надежных технологий, которые могут справляться с большими нагрузками. Если это ваш случай, данная книга — для вас.
Среда Java Enterprise Edition появилась в конце 1990-х годов и привнесла в язык Java надежную программную платформу для разработок корпоративного уровня. J2 EE, хоть и составляла конкуренцию фреймворкам с открытым кодом, считалась достаточно тяжеловесной технологией, была технически перенасыщенной, и каждая ее новая версия подвергалась критике, неправильно понималась или использовалась. Благодаря этой критике Java EE была усовершенствована и упрощена.
Если вы относитесь к числу людей, которые по-прежнему считают, что «архитектуры EJB — это зло», прочитайте эту книгу, и вы измените свое мнение. Архитектуры Enterprise Java Beans просто прекрасны, как и весь стек технологий Java EE 7. Если же вы, наоборот, адепт Java EE, то в книге вы увидите, как эта платформа обрела равновесие благодаря простоте разработки и несложной компонентной модели. Если вы начинающий пользователь Java EE, эта книга вам также подойдет: в ней очень понятно описываются наиболее важные спецификации, а также для наглядности приводится много примеров кода и схем.
Открытые стандарты являются в совокупности одной из наиболее сильных сторон Java EE. Теперь не составляет труда портировать прикладные программы между серверами приложений. Диапазон технологий, применяемых при написании этих программ, включает JPA, CDI, валидацию компонентов (Bean Validation), EJB, JSF, JMS, SOAP веб-службы либо веб-службы с передачей состояния представления (RESTful). Открытый исходный код — еще одна сильная сторона Java EE. Как вы увидите далее в книге, большинство базовых реализаций Java EE 7 (GlassFish, EclipseLink, Weld, Hibernate Validator, Mojarra, OpenMQ, Metro и Jersey) лицензируются как свободно распространяемое ПО.
Книга посвящена инновациям последней версии, различным спецификациям и способам их сочетания при разработке приложений. Java EE 7 включает около 30 спецификаций и является важным этапом разработок для корпоративного уровня (CDI 1.1, Bean Validation 1.1, EJB 3.2, JPA 2.1), для веб-уровня (Servlet 3.1, JSF 2.2, Expression Language 3.0) и для интероперабельности (JAX-WS 2.3 и JAX-RS 2.0). Издание охватывает большую часть спецификаций по Java EE 7 и использует инструментарий JDK 1.7 и некоторые известные шаблоны проектирования, а также сервер приложений GlassFish, базу данных Derby, библиотеку JUnit и фреймворк Maven. Издание изобилует UML-схемами, примерами Java-кода и скриншотами.
Книга посвящена наиболее важным спецификациям по Java EE 7 и новому функционалу этого релиза. Структура издания повторяет архитектурное выделение уровней в приложении.
В главе 1 приводятся основные понятия Java EE 7, которые далее обсуждаются в книге. Глава 2 посвящена контексту и внедрению зависимости (Context и Dependency Injection 1.1), а глава 3 — валидации компонентов (Bean Validation 1.1).
Главы 4–6 описывают уровень сохраняемости и подробно рассматривают интерфейс JPA 2.1. После краткого обзора и нескольких практических примеров в главе 4 глава 5 полностью посвящена объектно-реляционному отображению (атрибутам отображения, отношениям и наследованию), а глава 6 — тому, как вызывать сущности и управлять ими, их жизненному циклу, методам обратного вызова и слушателям.
Для разработки транзакций на уровне бизнес-логики на Java EE 7 может использоваться архитектура EJB. Главы 7–9 описывают этот процесс. После обзора спецификации и истории ее создания в главе 7 идет речь о компонент-сеансах EJB и модели их разработки. Глава 8 посвящена жизненному циклу архитектуры EJB, службе времени и способам обращения с авторизацией. Глава 9 объясняет понятие транзакций и то, каким образом интерфейс JTA переводит транзакции в EJB, а также в CDI-компоненты.
В главах 10 и 11 описано, как ведется разработка уровня представления данных с помощью фреймворка JSF 2.2. После обзора спецификации в главе 10 речь идет о разработке веб-страницы с помощью компонентов фреймворков JSF и Facelets. В главе 11 рассказывается о способах взаимодействия с серверной частью архитектуры EJB и поддерживающими CDI-компонентами, а также о навигации по страницам.
Наконец, последние главы предлагают различные способы взаимодействия с другими системами. В главе 12 объясняется, как обрабатывать XML (используя интерфейсы JAXB и JAXP) и JSON (JSON-P 1.0). Глава 13 показывает, как обмениваться асинхронными сообщениями с новым интерфейсом JMS 2.0 и компонентами, управляемыми сообщениями. Глава 14 посвящена веб-службам SOAP, а глава 15 — веб-службам RESTful с новым интерфейсом JAX-RS 2.0.





