Разработка приложений масштаба предприятия с использованием SPRING и библиотеки REACT (SPRING_REACT) – Программа курса

Программа курса

Архитектура современных приложений - Микросервисы, SPA приложения

  • Общая архитектура стандартного сервера приложений JEE. Инсталляция сервера, управление службами и сервисами. Консоль управления сервером для решения тестовых задач разработчика.
  • Почему мы используем SPRING для создания серверных приложений. Сравнение технологий SPRING с технологиями JEE

Основы Spring Framework.

  • Введение в Spring Framework;
  • Архитектура каркаса;
  • Компонентная модель Spring.

Spring Boot.

  • Соглашения над конфигурацией: Spring Boot Starters
  • Использование Web сервера в качестве контейнера серверного приложения tomcat/undertow(на примере Wildfly сервера)
  • Конфигурация и конфигурации по умолчанию
    • Java конфигурации
    • Создание классов конфигурации компонентов Spring
    • Предыинициализация классов конфигурации из файлов *.properties и .yml
    • Чтение конфигурации из environment
    • Использование распределённой конфигурации из Spring Cloud Config
    • Классическая конфигурация на XML

Spring DI & IOC

  • Что это?
  • Концепция Бина
  • Бины как разделяемые сервисы
  • Время жизни и жизненный цикл бина
  • Баовые аннотации Spring
    • @Bean
    • @Service
    • @Component
    • @Configuration
    • @PostConstruct
    • etc.
  • Способы создания бинов:
    • Через метод
    • Через конструктор
    • Декларативно
    • Императивно
  • Автосвязывание
  • Управление порядком загрузки бинов

Spring Data

Абстракции доступа к данным в Spring

  • Spring Data
  • Spring Data Adapters (JPA, Postgresql)
  • Spring JDBC Template
  • Реализация пула соединений с базой данных Postgresql с использованием SPRING и сравнеие с класическим пулом на основе JEE Wildfly сервера

JPA

  • Entity Manager - абстрактный механизм управления данными в реляционных базах данных
  • Методы и интерфейсы Entity Manager
  • Выполнение стандарных DML операций в базе данных с использованием EM
  • Аннотации JPA
  • Транзакции и блокировки
  • JPQL (JPA Query Language)
  • @Query и @NativeQuery
  • Проблемы возвращения результатов в жёстко типизированной Java
  • Различие EM и Spring Repository
  • Отображение поисковых запросов JPA на методы поиска в интерфейсе репозитория Spring Data

RESTful Web сервисы

  • RESTful архитектура и ее применение к web сервисам
  • Проектирование RESTful web сервиса и определение ресурсов
  • Выбор правильного HTTP метода в случае, когда нужно избегать дублирования запросов
  • Определение статуса результата Web сервиса по коду HTTP отклика
  • Версионирование RESTful web сервисов

Взаимодействие с другими ресурсами масштаба предприятия из SPRING приложений

  • KAFKA сервер
  • Apache Active MQ сервер
  • Организация доступа - дополнительные библиотеки
  • Асинхронное взаимодействие

Создание клиентских приложений

  • Введение в SPA приложения. Что такое реактивное приложение. Виртуальный DOM приложения.
  • Создание минимального React приложения, утилита create-react-app, анатомия и внутренняя архитектура каталогов, React объект - как точка входа в приложение.
  • Синтаксический сахар - React-JSX для функции createElement. Спецификация типов элементов, область видимости и нотации JSX. Правила именования. Свойства JSX элементов и литералы.
  • Использование функции fetch для доступа к микросервисам SPRING. Описание прокси для сервера разработки.
  • Обработка ошибок сервера на стороне клиентского приложения. Выстраивание цепочки выполнения запросов к серверу в единый промис на конкретных примерах SPRING микросервисов.
  • Построение готового клиентского приложения с обработкой отношения мастер-деталь, изменением данных в базе данных и формированием отчетов.