Это обзорный курс, в котором будет показано большинство технологий JEE (Servlet, JSF, EJB 3) для стандартных серверов приложений, таких как WildFly, Weblogic, Web Sphere, примеры которых будут разрабатываться в среде Eclipse. По всем разделам курса будут создаваться приложения, как серверной так и клиентской части, все примеры приложений будут переданы слушателям на магнитных носителях.
Аудитория: разработчики Java, которые планируют использовать технологию JEE.
Цель курса: по окончании курса слушатели получат полную картину по разработке приложений с помощью среды Eclipse в технологии JEE.
При чтении курса строятся примеры приложений с использованием стандартных шаблонов, так же много приводится примеров анти-патернов, которые, к сожалению, встречаются на практике и даже в сегодняшней литературе. По согласованию со слушателями, разработка приложений ведется для одного из стандартный сервера приложений (Wildfly, WebLogic, Web Sphere), возможен вариант тестирования приложений на разных серверах.
Все примеры и презентации в виде рисунков (которые были сделаны лектором), передаются слушателям на магнитных носителях, так же слушатели получат видеозапись всего курса по аналогии с тем , что находится на сайте http://mironchik.com.
1. Инсталляция и конфигурация среды разработки 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.
14. Доступ к ресурсам приложения и сервера. TimerService. Создание компоненты для выполнения действий по расписанию. Управление пассивацией в сессионных компонентах с состоянием. Создание простейшего сущностного компонента на основе таблицы в базе данных. Конфигурация первичного ключа. Аннотация @Id, @SequenceGenerator, @TableGenerator. Композиционный первичный ключ. Аннотация @Embeddable и @EmbeddedId. Отображение композиционного первичного ключа на сущностный класс – аннотация @IdClass.
15. Конфигурация метаданных по таблицам и колонкам – аннотации @Table, @SecondaryTable. @Column. Связанные колонки – @JoinColumn. Использование различных отношений между колонками. Конфигурация базового отображения примитивных типов данных в таблицах Oracle - @Basic. Конфигурация больших объектов - @ Lob. Конфигурация поля Version для производства оптимистической блокировки записи.
16. Определение методов жизненного цикла сущностной компоненты - @Pre… и @Post… аннотации. Ассоциация листенера и сущностного класса.
17. Конфигурация наследования в сущностных компонентах.
18. Язык запросов EJBQL. Использование аннотаций для создания именованных запросов -@NamedQuery. Использование параметров в запросах. Создание динамических запросов – javax.management.Query.
19. Компоненты, управляемые сообщениями (MDB). Использование аннотаций для привязки MDB компонента к источнику сообщений.
20. Транзакционные и нетранзакционные REST сервисы на основе EJB компонент. Методы передачи запроса и возврата результата, прохождение запроса через Ловушку (Iterceptor). Разбор JSON потока на стороне клиента, ReactJS взаимодействие.