Описание
При чтении курса строятся примеры приложений с использованием стандартных шаблонов, так же много приводится примеров анти-патернов, которые, к сожалению, встречаются на практике и даже в сегодняшней литературе. По согласованию со слушателями, разработка приложений ведется для одного из стандартный сервера приложений (Wildfly, WebLogic, Web Sphere), возможен вариант тестирования приложений на разных серверах.
Все примеры и презентации в виде рисунков (которые были сделаны лектором), передаются слушателям на магнитных носителях, так же слушатели получат видеозапись всего курса по аналогии с тем , что находится на сайте http://mironchik.com.
Целевая аудитория

Разработчики Java, которые планируют использовать технологию JEE.
По окончании
курса слушатели получат полную картину по разработке приложений с помощью среды
Eclipse в технологии JEE.

Программа
    • Инсталляция и конфигурация среды разработки Eclipse, JDeveloper, основные компоненты и плагины.

    • 2. Общая архитектура стандартного сервера приложений JEE. Инсталляция сервера, управление службами и сервисами. Консоль управления сервером для решения тестовых задач разработчика. Порядок создания серверного JEE приложения. Определение основных сервисов JEE. Управление сервисом JAAS, JDBC, JMS, Timer и другими. Подключение тестового сервера к среде разработки. Настройка доступа к внешнему LDAP серверу.

    • 3. Разработка приложений с использованием Servlets, JSF. Web взаимодействия. Конфигурирование сервера для работы с Web приложениями. Структура WAR и EAR архивов, дескрипторы размещения и доставки. Последовательность создания Web приложения.

    • 4. Правила построения безопасного доступа к Web приложениям. Сервис JAAS. Principals и JAZN аутентификация. Пример разработки приложения с использованием JAAS сервера. Безопасность на основе форм.

    • 5. Разработка Web контроллеров на основе сервлетов. Листенеры, фильтры, управление безопасностью через сервлеты. Технология программирования сервлетов, сеансы и жизненный цикл. Контекст приложения и сервлета. Отслеживание сеансов. Цикл жизни сессии. Настройка дескриптора размещения Web приложения. Использование JNDI для доступа к данным в сервлетах. Взаимодействие между сервлетами через контекст приложения.

    • 6. Модель MVC. Создание Web приложений в архитектуре JSF. Конфигурационный файл Faces сервлета. Обработка событий на стороне сервера. Подключение листенеров и валидаторов. Управление акциями в JSF приложении. Библиотека стандартных JSF компонент. Правила использования основных UI (User Interface) компонент на страницах JSF. FacesContext – управление сообщениями и доступ к стандартным контекстам приложения.

    • 7. JSF и переноса обработки событий на сторону клиента – технология AJAX. Подключение внешних js библиотек на примере Jquery. Доступ к элементам JSF из Jquery. Разработка серверной и клиентской части с использованием WebSocket. Динамическое обновление клиентских страниц. Введение в технологию ReactJS

    • 8. Интеграция Web приложений с приложениями EJB. Введение в технологию EJB.

    • 9. Технология REST сервисов, анотации для работы с REST, описание приложения и путей доступа к иодулям, виды запросов — GET, POST, DELETE... Формирование входного и выходного потока из REST сервиса.

    • 10. Общая архитектура EJB 3. Аннотации метаданных и дескрипторов доставки. Два типа компонент – Сессионные и Управляемые событиями. Сущностные бины.

    • 11. Порядок сборки, упаковки и отправки на сервер приложений, модулей с EJB3 компонентами. Аннотации вместо файла ejb-jar.xml. Конфигурация приложения на конкретном сервере приложений с помощью аннотаций сервера приложений

    • 12. Клиенты для сессионных компонент (локальные , удаленные, Web сервисы). Управление сессионным состоянием. Цикл жизни сессионных компонент. Аннотации, методы для управления циклом жизни. Методы управления доступом к компонентам. Распределение ролей для выполнения различных методов.

    • 13. Методы и классы Interceptor, аннотация @AroundInvoke.AroundInvoke.

    • 14. Доступ к ресурсам приложения и сервера. TimerService. Создание компоненты для выполнения действий по расписанию. Управление пассивацией в сессионных компонентах с состоянием. Создание простейшего сущностного компонента на основе таблицы в базе данных. Конфигурация первичного ключа. Аннотация @AroundInvoke.Id, @AroundInvoke.SequenceGenerator, @AroundInvoke.TableGenerator. Композиционный первичный ключ. Аннотация @AroundInvoke.Embeddable и @AroundInvoke.EmbeddedId. Отображение композиционного первичного ключа на сущностный класс – аннотация @AroundInvoke.IdClass.

    • 15. Конфигурация метаданных по таблицам и колонкам – аннотации @AroundInvoke.Table, @AroundInvoke.SecondaryTable. @AroundInvoke.Column. Связанные колонки – @AroundInvoke.JoinColumn. Использование различных отношений между колонками. Конфигурация базового отображения примитивных типов данных в таблицах Oracle - @AroundInvoke.Basic. Конфигурация больших объектов - @AroundInvoke. Lob. Конфигурация поля Version для производства оптимистической блокировки записи.

    • 16. Определение методов жизненного цикла сущностной компоненты - @AroundInvoke.Pre... и @AroundInvoke.Post... аннотации. Ассоциация листенера и сущностного класса.

    • 17. Конфигурация наследования в сущностных компонентах.

    • 18. Язык запросов EJBQL. Использование аннотаций для создания именованных запросов -@AroundInvoke.NamedQuery. Использование параметров в запросах. Создание динамических запросов – javax.management.Query.

    • 19. Компоненты, управляемые сообщениями (MDB). Использование аннотаций для привязки MDB компонента к источнику сообщений.

    • 20. Транзакционные и нетранзакционные REST сервисы на основе EJB компонент. Методы передачи запроса и возврата результата, прохождение запроса через Ловушку (Iterceptor). Разбор JSON потока на стороне клиента, ReactJS взаимодействие.