Курс: Язык программирования Java. Создание приложений для работы с базами данных - технологии ORM (Hibernate, TopLink)

Курс: Язык программирования Java. Создание приложений для работы с базами данных - технологии ORM (Hibernate, TopLink)

Курс: Язык программирования Java. Создание приложений для работы с базами данных - технологии ORM (Hibernate, TopLink)


Продолжительность курса: 40 ак. ч.

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

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

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

Результат обучения:
После изучения курса слушатель будет уметь:
•  Знакомство с архитектурой корпоративных приложений на 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.
• Знакомство с защитой данных, аутентификацией и авторизацией

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

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

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

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

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

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

Модуль 8. Способы реализации REST(Json, XML) API в Spring/Spring boot
• 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
1)    Facebook GraphQL
2)    Microsoft Odata
3)    Старые злые Web Services (WS)
4)    Проблемы аутентификации/авторизации на молодёжных GraphQL и Odata. Spring Security не помогает.

Модуль 9. Использование API из клиентов
• Java/Groovy
• JavaFX
• Vaadin
• Android
• JS (browser/nodejs)
• Аспекты потребления API из React/Redux и Angular 5

Модуль 10. Микросервисы. Netflix stack, Spring Cloud и микро-сервисная архитектура Jhipster
• Если есть возможность обойтись без микро-сервисов, не открывайте этот ящик Пандоры!
• 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
• Обзор средств запуска и контроля за микро-сервисами
1)    Docker/Docker swarm
2)    Mesos/DCOS
3)    Kubernetes
4)    Hadoop/YARN

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

Характеристики курса

  • Начало: Ведется набор
  • Вендор: Java
  • Код курса: JV-10
  • Город: Пермь, Челябинск, Самара, Ижевск, Екатеринбург
  • Направление: Java
  • Академических часов: 40
  • Количество мест: 8
  • Очно: 42900 ₽
  • Дистанционно: 42900 ₽
Записаться на курс

Курсы повышения квалификации
и профессиональной переподготовки


График работы:
Мы отвечаем на звонки и письма в будние дни с 7:00 до 16:00 по Мск

Юридический адрес организации:
614010, г. Пермь, ул. Клары Цеткин, д. 14, офис 32

8 800 (600)-66-16

learning@eshift.ru