Данный курс предназначен для изучения технологий из стека 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