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

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

Архитектура современных приложений - Микросервисы, 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 сервер
  • Организация доступа - дополнительные библиотеки
  • Асинхронное взаимодействие