Курс: Язык программирования 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