Курс Разработка современных корпоративных приложений и микро-сервисов на Spring/Java EE

Код: JavaEE_Spring_Advance

Продолжительность курса

40 Академических часов

Стоимость курса

43 255 руб
Заказать

Цели курса:

Дать слушателям знания по разработке корпоративных Java EE приложений на основе каркаса Spring/Spring boot:

• Знакомство с архитектурой корпоративных приложений на Spring, Spring IOC, Spring AOP, Spring Data JPA (ORM), Spring REST/JSON/HATEOAS API.
• Знакомство с моделью MVC в парадигме Single Page Application (SPA) + REST/JSON API. 
• Знакомство с реализацией Websockets в Servlet-контейнере. 
• Изучение систем сборок проектов maven/gradle, упаковка микросервисов в кконтейнеры Docker.
• Знакомство с защитой данных, аутентификацией и авторизацией

Аудитория

Курс предназначен для специалистов в области корпоративных приложений на Java

От слушателя требуется

Обязательное знание диалекта 1.8 языка Java на уровне JavaSE8Core. Желательно понимание обобщённых типов Java и фреймворка коллекций Java

Содержание курса

Модуль 1. Основы Spring Framework, 3 часа.

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

Модуль 2. Spring DI & IOC, 5 часов

- Что это?
- Различие между DI и IOC
- Концепция Бина
- Бины как разделяемые сервисы
- Время жизни и жизненный цикл бина
- Аннотации Spring
   - @Bean
   - @Service
   - @Component
   - @Configuration
   - @PostConstruct
   - etc.
- Базовое знакомство с Spring XML и аннотациями, 4 часа
- Способы создания бинов:
   - Через метод
   - Через конструктор
   - Декларативно
   - Императивно
- Автосвязывание
- Управление порядком загрузки бинов
- BeanPostprocessor's

Модуль 3. Spring Data, 4 часа

- Абстракции доступа к данным в Spring
   1. Spring Data
   2. Spring Data Adapters (JPA, Mongodb, Net4j, etc.)
   3. Spring JDBC Template
   4. Connection pools (Hikari, etc.)
   5. JDBC & native nosql database connectors

Модуль 4.  JPA, 4 часа

- Entity Manager Fabric
- Entity Manager
- Entity (Единица персистентности, PU)
- Аннотации JPA
- Структура базы данных, объекты и их отношения
- Lazy loading
- Транзакции и блокировки
- JPQL (JPA Query Language)
- @Query и @NativeQuery
- Проблемы возвращения результатов в жёстко типизированной Java
- Criteria API 
- Различие EM и Spring Repository
- Устранение проблем Spring Repository
- Отображение поисковых запросов JPA на методы поиска в интерфейсе репозитория Spring Data 

Модуль 5.  MongoDB, 2 часа.

- Структура запросов
- Отображение поисковых запросов MongoDB на методы поиска в интерфейсе репозитория Spring Data   

Модуль 6. Философия Spring Boot, 2 часа.

- Соглашения над конфигурацией: Spring Boot Starters
- Embedded servlet containers: tomcat/jetty/undertow
- Конфигурация и конфигурации по умолчанию
   - Java конфигурации
   - Создание классов конфигурации компонентов Spring
   - Предыинициализация классов конфигурации из файлов *.properties и .yml
   - Чтение конфигурации из environment
   - Использование распределённой конфигурации из Spring Cloud Config
   - Классическая конфигурация на XML
   - Конфигурация на Groovy DSL 

Модуль 7. Сборка и отладка проектов, 6 часов.

- Консольные средства сборки
   - Ant
   - Maven
   - Gradle
- Интеграция описания проекта на Maven/Gradle с IDE (Intellij/Eclipse/Netbeans)
- Средства контроля версий, DVCS. Git
- Поддержка Spring/spring boot в Intellij Idea и STS(Eclipse)

Модуль 8. Способы реализации REST(Json, XML) API в Spring/Spring boot, 3 часа.

- Spring Data REST/HATEOAS
- Spring MVC: @Controller, @RestController
- Jhipster DAO/DTO/Swagger
- Скаффолдинг доменной модели в Spring Data REST и Jhipster (автоматическая генерация сущностей, репозитариев и клиентского API для Angupar/AngularJS, React)
- Самодокументированные API: HATEOAS(Spring Data REST) и Swagger(Jhipster и "чистый" Spring)
- Способы построения API, альтернативные REST
   - Facebook GraphQL
   - Microsoft Odata
   - Старые злые Web Services (WS)
   - Проблемы аутентификации/авторизации на молодёжных GraphQL и Odata. Spring Security не помогает.

Модуль 9. Использование API из клиентов, 3 часа.

- Java/Groovy
- JavaFX
- Vaadin
- Android
- JS (browser/nodejs)
- Аспекты потребления API из React/Redux и Angular 5

Модуль 10. Микросервисы. Netflix stack, Spring Cloud и микро-сервисная архитектура Jhipster, 2 часа.

- Если есть возможность обойтись без микро-сервисов, не открывайте этот ящик Пандоры!
- Spring Cloud Config
- Zookeeper (Distributed ierarchical key-value storage с избыточностью). Windows Registry на стероидах.
- Netflix Eureka (Service Discovery)
- Netflix Zool (Service Gateway) и Jhipster Gateway
- Netflix Hystrix (Circuit Breaker)
- Netflix Ribbon (Client Side Load Balancer) и Jhipster Gateway
- Обзор средств запуска и контроля за микро-сервисами
   - Docker/Docker swarm
   - Mesos/DCOS
   - Kubernetes
   - Hadoop/YARN

Модуль 11. Security, 2 часа.

- Современные протоколы авторизации и аутентификации
   - Stateless-аутетнтификация в REST-сервисах
   - Basic
   - Oauth2
   - JWT
   - Spring Sequrity
      - Общие концепции и конфигурация библиотеки
      - Связывание security-объектов с базой данных
      - Хранение токенов
      - Method-based vs URL-based security
   - Сервер UAA (User Accounts & Autentification) из Jhipster
   - Сервер UAA на чистом Spring Boot