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

Изучение Java EE 7, NetBeans, Glassfish и Wildfly для разработки корпоративного приложения с нуля

Ratings: 3.86 / 5.00




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

What You Will Learn!

  • Использовать все допустимые возможности стека технологий Java Enterprise Edition 7;
  • Использовать возможности построения легковесных и модульных корпоративных приложений;
  • Проектировать систему любой сложности на основании отдельных слабосвязанных CDI компонентов;
  • Писать чистый и понятный другому программисту код;
  • Интегрировать социальные сервисы в Ваш проект;
  • Разрабатывать распределенные приложения на базе стека технологий Java Enterprise Edition 7;
  • Разрабатывать асинхронные бизнес методы без использования JMS;
  • Писать автоматическую документацию для REST сервисов;
  • Быстро разрабатывать SOAP веб сервисы;
  • Разрабатывать JEE приложения, независимые от JEE сервера;
  • Использовать JEE сервера: Glassfish, Wildfly, TomEE для разработки и тестирования корпоративных приложений;

Who Should Attend!

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