Корпоративное приложение Myphotos: JEE 7, NetBeans, Wildfly
4.0 (14 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
72 students enrolled

Корпоративное приложение Myphotos: JEE 7, NetBeans, Wildfly

Изучение Java EE 7, NetBeans, Glassfish и Wildfly для разработки корпоративного приложения с нуля
4.0 (14 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
72 students enrolled
Created by DevStudy .net
Last updated 8/2019
Russian
Current price: $13.99 Original price: $19.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 16.5 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Использовать все допустимые возможности стека технологий Java Enterprise Edition 7;
  • Использовать возможности построения легковесных и модульных корпоративных приложений;
  • Проектировать систему любой сложности на основании отдельных слабосвязанных CDI компонентов;
  • Писать чистый и понятный другому программисту код;
  • Интегрировать социальные сервисы в Ваш проект;
  • Разрабатывать распределенные приложения на базе стека технологий Java Enterprise Edition 7;
  • Разрабатывать асинхронные бизнес методы без использования JMS;
  • Писать автоматическую документацию для REST сервисов;
  • Быстро разрабатывать SOAP веб сервисы;
  • Разрабатывать JEE приложения, независимые от JEE сервера;
  • Использовать JEE сервера: Glassfish, Wildfly, TomEE для разработки и тестирования корпоративных приложений;
Course content
Expand all 35 lectures 16:42:31
+ Создание функционального макета web модуля
11 lectures 04:55:47
  1. Постановка задачи на разработку корпоративного приложения  myphotos.com, состоящего из модулей: web интерфейс, SOAP web сервисы и  REST web сервисы и поддерживающего следующий набор функций:

    1. Отображение пользовательского профиля и его фотографий;

    2. AJAX загрузка следующей порции фотографий;

    3. Регистрация через Facebook;

    4. Регистрация через Google+;

    5. Транслитерация имени и фамилии пользователя;

    6. Автоматическая генерация UID пользователя на основании его имени и фамилии;

    7. Скачивание аватарки с социальной сети;

    8. Загрузка новой аватарки;

    9. Редактирование персональных данных;

    10. Отображение фотографий по популярности фотографий;

    11. Отображение фотографий по популярности автора;

    12. Просмотр (с увеличением счетчика просмотров) большой фотографии;

    13. Скачивание (с увеличением счетчика скачиваний) оригинальной фотографии;

    14. Загрузка новых фотографий;

    15. Хранение трех версий фотографии: маленькой - для отображения в UI, большой - для предпросмотра, оригинальной - для скачивания;

    16. Возможность залогиниваться и вылогиниваться с мобильных устройств;

    17. User Friendly url и сообщения об ошибках;

    18. Ежедневное обновление рейтинга пользователя по формуле: rating = views * 1 + downloads * 100;

  2. Обзор предоставленного front-end разработчиком UI шаблона для web интерфейса;

  3. Обзор стека технологий спецификации Java Enterprise Edition 7;

  4. Обзор архитектуры будущего приложения.

Preview 28:17
  1. Установка jdk 8 (Java Development Kit 8);

  2. Установка Netbeans 8.2 with Glassfish 4.1.1 (https://netbeans.org/downloads/);

  3. Настройка Glassfish 4.1.1;

  4. Установка nginx 1.12 (https://nginx.org/en/download.html);

  5. Установка postgresql 9.6.3 (https://www.postgresql.org/download/);

  6. Установка SQL Manager Postgres - SQL клиент для работы с сервером Postgresql (https://www.sqlmanager.net/en/products/postgresql/manager);

  7. Создание базы данных myphotos;

  8. Создание DataSource для базы данных myphotos в сервере Glassfish 4.1.1

Установка jdk 8, Netbeans 8.2, Glassfish, nginx, postgresql server, SQL Manager
18:45
  1. Создание таблицы profile;

  2. Создание таблицы photo;

  3. Создание таблицы access_token;

  4. Создание последовательности profile_seq;

  5. Создание последовательности photo_seq;

  6. Создание хранимой процедуры update_rating();

Создание базы данных myphotos
22:09
  1. Обзор структуры JEE корпоративного приложения. Формат EAR;

  2. Создание maven проекта myphotos;

  3. Создание модуля ejb;

  4. Создание модуля web;

  5. Создание модуля model;

  6. Создание модуля common;

  7. Создание модуля rest;

  8. Создание модуля ws;

  9. Конфигурирование зависимостей в проекте;

  10. Обзор EAR архива, собранного с помощью maven;

  11. Комментирование модулей, которые будут разрабатываться позже;

Создание проекта myphotos
21:46
  1. Проектирование исключений проекта;

  2. Создание группы бизнес исключений;

  3. Создание классов модели проекта;

  4. Создание интерфейсов бизнес сервисов;

  5. Использование шаблона Null Object (https://en.wikipedia.org/wiki/Null_object_pattern) в проекте;

Исключения, модель и интерфейсы бизнес сервисов
30:44
  1. Генерация модели хранения данных с помощью мастера JPA сущностей на основе схемы базы данных;

  2. Адаптация сгенерированных классов к модели предметной области;

  3. Проблема методов equals и hashCode при использовании одних и тех же  классов в качестве модели предметной области и модели хранения данных;

  4. Универсальный метод toString для классов модели;

  5. Использование аннотаций Bean Validation для конфигурирования ограничений в модели хранения данных;

  6. Создание пользовательских аннотаций Bean Validation;

  7. Создание компонента валидации для пользовательской аннотации Bean Validation;

Модель предметной области, модель хранения данных и правила валидации
34:00
  1. Создание аннотаций CDI для расширения возможностей CDI контейнера;

  2. Пример использования аннотации @Property;

  3. Абстракция ResourceLoader и ее реализации;

  4. Использование возможностей множественного внедрения CDI для реализации динамически подключаемых реализаций ResourceLoader;

  5. Компоненты загрузки свойств приложения;

  6. Описание процедуры переопределения свойств приложения;

  7. Производители логгера и свойств приложения;

  8. Активация CDI для модуля myphotos-common;

  9. Подключение расширения CDI для мониторинга всех доступных CDI beans в приложении;

  10. Демонстрация работы CDI контейнера

CDI аннотации, производители и конфигурирование свойств приложения
30:04
  1. Пример создание системных свойств в сервере Glassfish;

  2. Пример создание свойств через окружение операционной системы;

  3. Опция bean-discovery-mode и проблемы с поддержкой в Glassfish;

  4. Аннотация @Vetoed в качестве решения проблемы;

  5. Фильтры исключения сканирования CDI beans;

  6. Демонстрация работы CDI контейнера;

  7. Отличие файла application.properties от Java констант;

  8. Создание констант в проекте;

  9. Перечисление ImageCategory с указанием свойств изображений для указанной категории

Настройки CDI. Константы приложения
23:18
  1. Абстрактный интерфейс репозиториев;

  2. Интерфейсы репозиториев для каждой сущности проекта;

  3. Создание тестовых данных в виде базы данных в  оперативной памяти;

  4. Создание динамических прокси классов для частичной реализации интерфейсов репозиториев;

  5. Активация CDI механизма;

  6. Демонстрация работы CDI контейнера

Интерфейсы репозиториев и тестовая реализация
19:53
  1. Обзор функций EJB контейнера;

  2. Настройка EJB контейнера в сервере Glassfish;

  3. Соглашения об именовании EJB компонентов;

  4. Создание EJB компонентов с локальным доступом для всех бизнес интерфейсов проекта;

  5. Внедрение зависимостей в EJB компонент с помощью механизма CDI;

  6. Использование асинхронных бизнес методов для обработки изображений;

  7. Настройка атрибутов транзакций, управляемых EJB контейнером;

  8. Механизмы программного отката текущей транзакции;

  9. Дескриптор EJB модуля ejb-jar.xml;

  10. Настройка исключений проекта;

Preview 31:15
  1. Использование servlets и JSP для реализации web модуля;

  2. Правила шаблонизации JSP для проекта;

  3. Константы web модуля;

  4. Использование шаблона MVC для web модуля;

  5. Создание контроллеров для домашней страницы и страницы профиля;

  6. Создание контроллера статических ресурсов;

  7. Создание фильтров для web модуля;

  8. Демонстрация результатов первого спринта

Реализация домашней страницы и страницы пользователя для web модуля
35:36
+ Реализация функций отображения данных web модуля
7 lectures 03:03:06
  1. Основные правила объектно-реляционного отображения;

  2. Создание дескриптора JPA persistence.xml;

  3. Подключение к ранее созданному DataSource в Glassfish;

  4. Свойства отображения SQL для EclipseLink JPA провайдера;

  5. Активация автоматической проверки данных с помощью Bean Validation при сохранении сущностей с помощью JPA;

  6. Сохранение даты и времени создания сущности в базе данных;

  7. Создание JPA слушателей сущностей;

  8. Подключение слушателей к сущностям с помощью xml;

  9. Реализация CRUD операций в репозиториях;

  10. Важность использования @Dependent аннотации для JPA репозиториев;

Объектно-реляционное отображение и конфигурирование JPA
30:25
  1. Обзор возможностей построения запросов в JPA;

  2. Преимущества статических JPQL запросов;

  3. Недостатки в реализации статических JPQL запросов;

  4. Обзор сторонних библиотек для создания динамических репозиториев:  Spring Data JPA,  Apache DeltaSpike;

  5. Создание пользовательской аннотации @JPAQuery;

  6. Создание компонента добавляющего статические запросы при развертывании проекта на сервере;

  7. Деактивация CDI механизма для тестовых реализации репозиториев;

  8. Демонстрация проверки синтаксиса всех JPQL запросов при развертывании приложения;

  9. Использование службы таймеров EJB компонента для ежедневного обновления рейтинга пользователей

Создание JPQL запросов для JPA репозиториев
33:44
  1. Создание компонента генерации уникального имени файла;

  2. Создание компонента для resize фотографий;

  3. Создание компонента сохраняющего фотографии на локальном диске;

  4. Создание EJB компонента для реализации бизнес логики обработки фотографий;

  5. Использование временных файлов при обработке изображений;

  6. Реализация бизнес методов по загрузке новой аватарки и фотографии;

  7. Создание перехватчика автоматической очистки временных файлов;

  8. Использование прокси объекта для асинхронных операций для контроля за системными исключениями на клиентской стороне;

  9. Создание перехватчика активирующего прокси объект для асинхронных операций;

Обработка и хранение фотографий
28:10
  1. Создание отдельного проекта для генерации тестовых данных для проекта myphotos.com;

  2. Использование встроенного контейнера TomEE для генерации тестовых данных;

  3. Использование сервиса unsplash.com в качестве поставщика тестовых фотографий;

  4. Обзор публичного API сервиса unsplash.com: unsplash.com/documentation;

  5. Создание классов REST модели;

  6. Использование клиентской части спецификации JAX-RS для загрузки фотографий с сервиса unsplash.com;

  7. Демонстрация работы загрузчика фотографий;

  8. Обзор тестовых пользователей для проекта myphotos.com

Загрузка тестовых фотографий
12:38
  1. Использование встроенного API EJB контейнера для создания абстрактного генератора;

  2. Использование TomEE сервера в качестве встроенного контейнера для запуска генератора;

  3. Создание environment.properties для конфигурирования генератора;

  4. Создание генератора тестовых профилей;

  5. Создание генератора тестовых фотографий;

  6. Создание CDI компонента для обновления фотографий в базе данных;

  7. Очистка директории с фотографиями;

  8. Очистка базы данных;

Абстрактный генератор и вспомогательные компоненты
14:57
  1. Доработка генератора тестовых данных;

  2. Добавление драйвера базы данных postgresql;

  3. Активация CDI механизма для генератора;

  4. Проблема отсутствия поддержки JPA 2.1 в TomEE;

  5. Использование альтернатив для решения проблемы;

  6. Ошибка проектирования модели хранения данных;

  7. Демонстрация поиска ошибки при недостаточной информации в логах сервера;

  8. Проблема задания даты и времени создания сущностей в базе данных;

  9. Решение проблемы вызова хранимых процедур из JPA 2.0;

  10. Исправление компонента построения пути сохраняемых фотографий;

  11. Демонстрация работы генератора;

Генерация тестовых данных
31:12
  1. Реализация контроллеров AJAX загрузки новых фотографий;

  2. Изменения в JSP страницах для поддержки AJAX запросов;

  3. Создание доменов myphotos.com, soap.myphotos.com, api.myphotos.com;

  4. Конфигурирование nginx сервера для проксирования запросов;

  5. Создание статических страниц с ошибками;

  6. Демонстрация работы приложения на домене myphotos.com;

  7. Создание тега сортировки отображения фотографий;

  8. Создание контроллера для предпросмотра большой копии фотографии;

  9. Создание контроллера для загрузки оригинальной фотографии;

  10. Демонстрация результатов второго спринта;

Preview 32:00
+ Реализация всех функций web модуля
7 lectures 03:20:29
  1. Конфигурирование Facebook приложения;

  2. Добавление настроек Facebook приложения в application.properties;

  3. Создание квалификатора @Facebook;

  4. Добавление библиотеки для работы с Facebook API;

  5. Создание социального сервиса для работы с Facebook;

  6. Создание контроллеров для работы с Facebook;

  7. Создание Stateful EJB компонента для реализации регистрации пользователя в приложении;

  8. Создание проксирующего сессионного компонента для хранения ссылки на Stateful EJB компонент;

  9. Программное уничтожение Stateful EJB компонента;

  10. Демонстрация работы интеграции с Facebook;

  11. Создание контроллера для вылогинивания пользователя;

  12. Демонстрация жизненного цикла Stateful EJB компонентов;

Интеграция с Facebook
32:31
  1. Создание квалификатора @GooglePlus;

  2. Создание социального сервиса для работы с Google+

  3. Добавление библиотеки для работы с Google+ API;

  4. Создание контроллеров для работы с Google+;

  5. Добавление настроек Google+ приложения в application.properties;

  6. Обзор JavaScript API для работы с Google+ сервисом;

  7. Конфигурирование Google+ приложения;

  8. Создание слушателя уровня приложения;

  9. Демонстрация работы интеграции с Google+;

  10. Создание страницы завершения регистрации пользователя;

  11. Создание тега пользовательской формы;

  12. Создание страницы terms of use;

Интеграция с Google+
26:46
  1. Демонстрация работы статических страниц c ошибками;

  2. Создание квалификатора UID генератора;

  3. Реализация первичных и вторичных UID генераторов;

  4. Создание менеджера генераторов с автоматическим поиском всех доступных генераторов в CDI контейнере;

  5. Бизнес логика генерации UID профиля;

  6. Создание компонента транслитерации;

  7. Фильтр преобразования кодировок;

  8. Демонстрация работы компонента транслитерации;

Стратегии генерации uid
22:49
  1. Бизнес метод загрузки аватарки пользователя с социального сервиса;

  2. Создание формы регистрации пользователя;

  3. Указание групп валидации данных пользователя;

  4. Создание контроллера сохранения данных о пользователе;

  5. Обзор процедуры валидации данных;

  6. Создание тегов для отображения результатов валидации;

  7. Демонстрация работы валидации данных;

  8. Демонстрация отладки приложения;

  9. Демонстрация работы регистрации пользователя и генерации уникального UID;

Регистрация пользователя
31:21
  1. Особенности реализации сервисов безопасности в Java Enterprise Edition 7;

  2. Обзор сторонних библиотек реализации безопасности:  Spring Security,  Apache Shiro;

  3. Добавление библиотеки Apache Shiro;

  4. Конфигурация в файле shiro.ini;

  5. Создание пользовательских компонентов;

  6. Перенаправление в контроллерах с учетом текущей аутентификации;

  7. Использование библиотеки тегов shiro для динамического отображения меню;

  8. Активация Apache Shiro в проекте;

  9. Демонстрация работы модуля безопасности;

Настройка безопасности web модуля с помощью Apache Shiro
33:05
  1. Контроллеры редактирования данных;

  2. Использование асинхронных сервлетов для загрузки фотографий;

  3. Использование Json API для AJAX ответов клиенту;

  4. Демонстрация работы контроллеров по загрузке фотографий;

  5. Порядок передачи управления между компонентами при загрузке фотографий;

Редактирования данных и загрузка фотографий
26:51
  1. Создание классов модели для отображения ошибок;

  2. Конвертер исключений в пользовательские сообщения;

  3. Создание фильтра обрабатывающего ошибки приложения;

  4. Проксирующий объект ответа, выбрасывающий исключение при возникновении ошибок;

  5. Создание тега проверки на ошибки;

  6. Логирование ошибок в web модуле;

  7. Демонстрация работы компонента обработки ошибок;

  8. Демонстрация результатов третьего спринта;

Preview 27:06
+ Разработка rest и soap web сервисов
5 lectures 02:21:59
  1. Обзор спецификации JAX-WS;

  2. Создание моделей представления данных для SOAP web сервисов;

  3. Использование спецификации JAXB при проектировании SOAP модели;

  4. Проектирование интерфейсов SOAP web сервисов для получение данных корпоративного приложения;

  5. Создание компонентов конвертеров модели;

Создание интерфейсов web сервисов
20:40
  1. Использование EJB компонентов в качестве реализации web сервисов;

  2. Управление конкурентным доступом на уровне компонента;

  3. Использование JAX-WS API для загрузки данных фотографии по протоколу SOAP;

  4. Введение в WSDL. Генерация WSDL для web сервисов;

  5. Использование Wizdler в качестве SOAP клиента;

  6. Демонстрация работы SOAP web сервисов;

  7. Анализ протокола SOAP для взаимодействия с web сервисами;

  8. Использование перехватчика для кастомизации сообщений об ошибках;

  9. Создание контроллера для универсального отображения всех доступных web сервисов;

Завершение модуля myphotos-ws
30:37
  1. Обзор спецификации JAX-RS;

  2. Создание классов модели REST web сервисов;

  3. Версионность REST web сервисов;

  4. Создание контроллера для отображения данных о профиле;

  5. Конфигурация модуля JAX-RS;

  6. Исправление ошибки java.lang.ClassNotFoundException:  javax.xml.parsers.ParserConfigurationException not found by  org.eclipse.persistence.moxy;

  7. Демонстрация работы REST web сервиса;

  8. Компоненты обработки ошибок в REST web сервисах;

  9. Логирование системных ошибок в модуле myphotos-rest;

Создание REST web сервисов
28:41
  1. Создание контроллера отображающего фотографии;

  2. Создание контроллера аутентификации;

  3. Описание правил аутентификации и регистрации через REST web сервисы;

  4. Создание защищенного контроллера для обновления данных;

  5. Создание пользовательского компонента по обработке загруженных фотографий;

  6. Использование common-fileupload библиотеки в проекте;

  7. Демонстрация работы REST web сервисов;

Создание REST контроллеров
24:40
  1. Обзор WADL для документирования REST web сервисов;

  2. Обзор OpenAPI Specification для документирования REST web сервисов;

  3. Использование Swagger для документирования REST web сервисов;

  4. Активация swagger для проекта myphotos-rest;

  5. Формат swagger.json;

  6. Использование Swagger UI для отображения документации REST web сервисов;

  7. Документирование REST web сервисов с помощью swagger аннотаций;

  8. Демонстрация тестирования REST web сервисов с помощью Swagger UI;

  9. Создание тестового класса для тестирования загрузке фотографий с помощью REST web сервисов;

  10. Демонстрация результатов четвертого спринта;

Документация REST web сервисов: WADL и OpenAPI Specification
37:21
+ Разработка распределенной версии корпоративного приложения и его развертывание
5 lectures 03:01:10
  1. Использование удаленных EJB интерфейсов для распределенных приложений;

  2. Вызов удаленного EJB интерфейса с отдельного проекта;

  3. Баг Eclipse Link при использовании удаленного EJB интерфейса;

  4. Использование мастера web сервисов для автоматической генерации SOAP клиента на основании WSDL;

  5. Демонстрация работы распределенного приложения использующего SOAP web сервисы;

  6. Использование maven swagger плагина для генерации REST модели на основе swagger.json файла;

  7. Скачивание последней версии плагина с Github и использование его в проекте;

  8. Создание компонентов REST клиента для взаимодействия с REST web сервисами;

  9. Демонстрация работы распределенного приложения использующего REST web сервисы;

Демонстрация построения распределенных приложений с помощью JEE7
33:04
  1. Обзор преимуществ MDB компонентов для масштабирования бизнес логики;

  2. Использование систем обмена сообщениями для распределения нагрузки;

  3. Создание JMS фабрики и очередей сообщений;

  4. Создание менеджера координации всех загрузок фотографий;

  5. Мониторинг неудавшихся асинхронных операций;

  6. Создание MDB компонента для обработки результатов обработки фотографий;

  7. Проектирование транзакций управляемых контейнером и используемой несколькими компонентами;

  8. Игнорирование повторных сообщений на обработку фотографий;

  9. Использование менеджера координации в бизнес компонентах для загрузки фотографий;

Создание отдельного модуля обработки фотографий для распределения нагрузки
26:45
  1. Создание отдельного проекта для модуля обработки фотографий;

  2. Перенос сервисов по работе с фотографиями;

  3. Создание MDB компонента для обслуживания запросов на обработку фотографий;

  4. Демонстрация работы модулей распределенного приложения myphotos.com;

  5. Анализ последовательных вызовов компонентов для реализации логики обработки фотографий;

Preview 28:07
  1. Установка JEE 7 сервера WildFly 10.1.0;

  2. Запуск full профиля;

  3. Использование интерфейса командной строки сервера для конфигурации DataSource, JMS, Logger, System properties;

  4. Особенности миграции корпоративного приложения с GlassFish на WildFly;

  5. Исправление ошибки поддержки CDI внедрения в слушатель JPA сущности;

  6. Развертывание корпоративных модулей на сервере приложений;

  7. Конфигурирование SOAP web сервисов на сервере WildFly;

  8. Демонстрация работы распределенного приложения на сервере WildFly;

  9. Генерация тестовых данных для тестирования работы корпоративного приложения на сервере WildFly;

  10. Активация отображения SQL в JPA провайдере;

  11. Использование web admin панели для конфигурирования сервера WildFly;

  12. Тестирование восстановления соединения к базе данных после сбоев;

  13. Тестирование отката транзакции на обновления аватарки после timeout соединения клиента;

  14. Тестирование загрузки аватарки и фотографии с помощью REST web сервисов;

Развертывание корпоративного приложения на сервере WildFly
42:14
  1. Обзор улучшений и исправлений ошибок для корпоративного приложения myphotos.com;

  2. Обзор легковесности EAR архива корпоративного приложения;

  3. Описание процесса прохождения HTTP запроса от отправки браузером до получения результата;

  4. Сравнение разработанной архитектуры с описанной в постановке задачи на разработку;

  5. Анализ используемых преимуществ каждой технологии из стека Java Enterprise Edition 7 для проекта myphotos.com;

  6. Обзор заложенных векторов масштабирования интерфейсов, бизнес  логики, хранилища данных и базы данных для корпоративного приложения  myphotos.com;

  7. Демонстрация результатов пятого спринта;

Обзор результатов
51:00
Requirements
  • Курс ориентирован на Java разработчиков, которые освоили Java Core и познакомились с Java EE
Description

Данный курс предназначен для изучения технологий из стека Java Enterprise Edition 7  на примере реализации корпоративного приложения Myphotos на базе созданного UI HTML шаблона,  используя которое можно загрузить фотографии и любой желающий сможет просмотреть фотографии и скачать оригинал.

Доступ к приложению должен осуществляться через веб интерфейс,  RESTful сервисы для использования в мобильных приложениях на платформах  Android, IOS и Windows Phone  и с помощью SOAP протокола для интеграции с другими корпоративными  приложениями.

При разработке корпоративного приложения будут использованы следующие технологии:

  • JSON API: создание JSON объектов с помощью builder, автоматическая конвертация Java объектов в JSON и наоборот;

  • Servlets & JSP: Маппинг с помощью аннотаций, асинхронные  сервлеты, обработка file upload, фильтры, слушатели, JSP теги, JSTL, EL;

  • CDI (Contexts and Dependency Injection): внедрение зависимостей, квалификаторы, альтернативы, производители данных,  bean definition аннотации, перехватчики, методы обратного вызова, события CDI, beans.xml;

  • Bean Validation: встроенные ограничения, пользовательские  ограничения, группы валидации, интеграция с JPA, валидаторы и валидация  компонентов;

  • EJB (Enterprise Java Beans): сессионные (stateless, stateful,  singleton) бины и бины управляемые сообщениями MDB (Message Driven  Beans), асинхронные бизнес методы, служба таймера, декларативное создание таймера, локальные и удаленные  интерфейсы, представления без интерфейсов, внедрение EJB компонента и  поиск по JNDI,  методы обратного вызова. инициализация при запуске, управление  конкурентным доступом singleton бина, внедрение зависимостей, дескриптор  развертывания,  использование встроенного EJB контейнера;

  • Interceptors (перехватчики): реализация AOP с помощью перехватчиков, изменения параметров метода в перехватчике;

  • JPA (Java Persistence API): объектно-реляционное отображение,  слушатели, генерация сущностей на основе схемы базы данных,  конфигурирование persistence.xml,  вызов хранимой процедуры из Java, использование xml для привязки  слушателей к сущностям, использование JPQL для создания статических  запросов к базе данных;

  • JMS (Java Message Service): фабрики и очереди JMS, использование  возможностей JMS 2.0, асинхронная доставка и MDB компоненты, свойства  сообщений;

  • JTA (Java Transaction API): локальные транзакции JTA, управляемые  EJB контейнером транзакции, атрибуты транзакций и управление откатом,  исключения и транзакции, использование транзакций в управляемых компонентах CDI;

  • JAX-RS (Java API for Restful Web Service): аннотации JAX-RS,  обработчики исключений, внедрение зависимостей, документирование REST  сервисов, вызов REST web служб, обработка асинхронных запросов;

  • JAX-WS (Java API for XML-Based Web Service): аннотации JAX-WS,  использование EJB компонентов в качестве реализаций WS интерфейсов,  кастомизация SOAP ошибок,  генерация WSDL (Web Services Description Language), вызов web служб;


В рамках курса будут использованы сервера реализации Java Enterprise Edition 7 с открытым исходным кодом:  GlassFish 4.1.1,  WildFly 10.1  и  TomEE 7.0.3.

Разработка корпоративного приложения Myphotos состоит из пяти спринтов:

  • Первый спринт завершается созданием функционального макета web модуля;

  • Второй спринт завершается реализацией функций отображения данных web модуля;

  • Третий спринт завершается реализацией всех функций web модуля;

  • Четвертый спринт завершается реализацией rest и soap web сервисов;

  • Пятый спринт завершается разработкой распределенной версии  корпоративного приложения и развертывании его на production сервере  WildFly;


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


Для получения теоретической и дополнительной информации по теме, рекомендуем следующие источники информации:

  • Java Enterprise Edition 7 Tutorial

  • Энтони Гонсалвес, Изучаем Java EE 7 (Beginning Java EE 7) - СПб.:Питер, 2014 - 640 с. - ISBN 978-5-496-00942-3

  • Дебу Панда, Реза Рахман, Райан Купрак, Майкл Ремижан, EJB 3 в действии (EJB 3 in Action) - М.:ДМК Пресс, 2015. - 618 с. - ISBN 978-5-97060-135-8

  • Арун Гупта, Java EE 7. Основы (Java EE 7 Essentials) - Вильямс, 2014. - 336 с. - ISBN 978-5-8459-1896-3

  • Роберт Мартин, Чистый код: создание, анализ и рефакторинг - СПб.:Питер, 2010. - 464 с. - ISBN 978-5-49807-381-1

  • PostgreSQL документация

  • Сергей Моренец, Разработка Java приложений - Книга 1

  • Сергей Моренец, Разработка Java приложений - Книга 2

Who this course is for:
  • Курс ориентирован на Java Junior разработчиков, которые хотят прокачать свои skills до Java Junior+ или Java Middle в направлении JEE