Корпоративное приложение Myphotos
4.1 (4 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.
28 students enrolled

Корпоративное приложение Myphotos

Программирование на Java
4.1 (4 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.
28 students enrolled
Created by DevStudy .net
Last updated 11/2018
Russian
Current price: $9.99 Original price: $19.99 Discount: 50% off
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 Udemy's top 3,000+ 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