Проходил 5 июня в 20:00

Открытый вебинар по Java Spring
Веб-приложения и микросервисы на Spring Boot 2.0

Открытый вебинар онлайн

На практическом онлайн-вебинаре вы:

•познакомитесь с возможностями Spring Boot 2.0;
•создадите и научитесь тестировать полноценное веб-приложение с помощью Spring Boot;
•узнаете о ряде возможностей Spring и Spring Boot, которые позволят писать минимум кода;
•поработаете со Spring Boot Actuator.

Зарегистрируйтесь на трансляцию!
Преподаватель
Юрий Дворжецкий

Запись

О курсе

Разработчик на Spring Framework
Первая строчка в резюме выпускников, которая появится после курса, будет звучать так: «Умею выживать в проектах, где есть Spring». После 5 месяцев интенсивных онлайн-занятий студенты смогут максимально быстро разрабатывать большие проекты на микросервисной архитектуре и создавать собственные веб-приложения. Для полноценного погружения в Spring мы собрали множество рабочих примеров, покрывающих все сферы разработки. А также включили работу с современным Reactive стеком ...
Программа курса
Модуль 1
Введение
Модуль 2
Работа с базами данных
Модуль 3
Разработка Web-приложений
Модуль 4
"Около" и "Дзен"
Модуль 5
Проектная работа
Введение
В данном модуле будут рассматриваться понятия и функциональности, на которых базируются все проекты Spring: Inversion of Control (Spring Context), аспектное программирование (Spring AOP), Spring Expression Language (SpEL).

Слушатели смогут правильно и эффективно конфигурировать Spring-приложения различными средствами и способами, а также будет рассмотрена "чёрная магия" Spring Boot - автоконфигурации.
Введение в Spring Framework
Слушатели смогут ориентироваться в проектах Spring,
проникнуться IoC и использовать его при написании кода, конфигурировать контекст и Spring Beans в приложении.
Домашние задания: 1
ДЗ
Программа по проведению тестирования студентов. В ресурсах хранятся вопросы и различные ответы к ним в виде CSV файла (5 вопрсов). Программа должна спросить у пользователя фамилию и имя, спросить 5 вопросов из CSV-файла и вывести результат тестирования.

Все сервисы в программе должны решать строго определённую задачу. Зависимости должны быть настроены в IoC контейнере.

Опционально: сервисы, по возможности, покрыть тестами.
Конфигурирование Spring-приложений
Слушатели смогут научиться конфигурировать Spring-приложения в разных стилях, пользоваться Spring Expression Language, конфигурировать приложения c помощью .properties/YAML файлов.
Домашние задания: 1
ДЗ
Добавить файл настроек в приложение для тестирования, Annotation- + Java-based конфигурация приложения. Добавьте файл настроек для приложения тестирования.
Не забудьте добавить аналогичный файл и для тестов.

Локализовать выводимые сообщения и вопросы теста.

И переписать конфигурацию в виде Java + Annotation-based конфигурации.
AOP, Spring AOP
Слушатели смогут познакомиться с аспектно-ориентированным программирование для создания crosscutting функциональностей в приложении с помощью Spring AOP. И, конечно, слушатели разберутся на чём базируются остальные фреймворки Spring.
"Чёрная магия" Spring Boot
По окончанию данного модуля слушатели смогут максимально быстро создавать production-grade standalone Spring-приложения с помощью Spring Boot, научатся писать автоконфигурации и использовать существующие и разрабатывать собственные Spring Boot "starters".

Также слушатели ознакомятся со многими возможностями Spring Boot для различных слоёв, функциональностей и технологий.
Домашние задания: 1
ДЗ
Перенести приложение на Spring Boot. Создать проект используя Spring Boot Initializr.

Перенести приложение проведения опросов.

Перенести все свойства в application.yml

Сделать собственный баннер для приложения.

Перенести тесты и использовать spring-boot-test-starter
Продвинутая конфигурация Spring-приложений
По окончанию данного занятия слушатели смогут использовать Best Practiсes для конфигурирования Spring-приложений, максимально эффективно использовать анннотации конфигураций.
Домашние задания: 1
ДЗ
Перевести приложение для проведения опросов на Spring Shell.
Подключить Spring Shell, используя starter.

Тесты и использовать spring-boot-test-starter
Работа с базами данных
В данном разделе будет рассмотрены проекты Spring для работы как с реляционными базами данных, так и с NoSQL базами данных.

Spring JDBC, Spring ORM, Spring Data Repositories и, разумеется, работа с транзакциями.

Помимо проектов Spring, участники смогут разбираться в особенностях различных баз данных, а также использовать специальные embedded-базы даных.
DAO на Spring JDBC
Слушатели смогут ориентироваться в архитекрутных паттернах, свзяанных с работой с БД.
Слушатели смогут эффективно использовать Spring JDBC для разработки DAO в приложении.
Домашние задания: 1
ДЗ
Создать приложение хранящее информацию о книгах в билиотеке. Использовать Spring JDBC и реляционную базу.

Опционально использовать настоящую реляционную БД, но можно использовать H2.

Предусмотреть таблицы авторов, книг и жанров.

Покрыть тестами, насколько это возможно.
Основы ORM, JPA, Hibernate как провайдер JPA
По окончанию этого занятия слушатели смогут эффективно применять JPA для описания маппинга классов-entities на таблицы реляционной БД.
Также слушатели смогут использовать Hibernate, как провайдера JPA для подключения к БД.
JPQL, Spring ORM, DAO на основе Spring ORM + JPA
По окончанию данного модуля слушатели смогут разрабатывать ORM DAO в Spring-приложении с помощью Spring ORM + JPA + Hibernate (в качестве провайдера JPA).

Также слушатели узнаю про JPQL (аналог HQL).
20 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Переписать приложение для хранения книг на ORM. Использовать JPA, Hibernate только в качестве JPA-провайдера.

Добавить комментарии к книгам, и высокоуровневые сервисы, оставляющие комментарии к книгам.

Покрыть DAO тестами используя H2 базу данных и соответствующий H2 Hibernate-диалект
Транзакции, Spring Tx
Слушатели погрузятся в теорию транзакций и поймут все особенности транзакций.
Также слушатели смогут использовать декларативное и императивное управление транзакциями в Spring-приложениях с помощью Spring Tx.
24 июля, 20:00 — 21:30
"Белая магия" Spring Data: Spring Data JPA
После данного занятия слушатели узнаю про набор проектов Spring Data и понятие репозитория, которое вводит Spring Data.

Также слушатели научатся использовать мощную "белую магию" Spring Data ORM для создания ORM DAO на основе JPA.
27 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Билиотеку на Spring Data JPA. Реализовать весь функционал работы с БД в приложении книг с использованием spring-data-jpa репозиториев.
SQL и NoSQL базы данных
По окончанию данного семинара слушатели начнут разбираться в особенностях реляционных и различных нереляционных (NoSQL) баз данных.

Также слушатели научатся правильно выбирать NoSQL БД для решения соответствующих задач.
31 июля, 20:00 — 21:30
Spring Data для подключения к нереляционным БД
После данного занятия слушатели смогу разрабатывать DAO, хранящие данные в нереляционных БД с помощью других Spring Data проектов.
3 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
Использовать MogoDB и spring-data для хранения информации о книгах. Тесты можно реализовать с помощью spring-boot-strter-embedded-mongodb
Разработка Web-приложений
В данном модуле будут рассматриваться возможности Spring для разработки Web-приложений: Spring MVC и современный Reactive-ориентированный Spring WebFlux.

Разумеется, будут рассмотрены популярные технологии View и разработка современных SPA-приложений.

И, конечно, различные "плюшки" Spring Boot, максимально ускоряющие разработку Web-приложений.
Введение в Spring MVC, Spring MVC на Spring Boot
Слушатели смогут ориентироваться в архитектуре MVC и Spring MVC, создавать простые классические веб-приложения на основе Spring MVC и Spring Boot.
7 августа, 20:00 — 21:30
Spring MVC View
По окончании данного занятия слушатели смогут разрабатывать View в классических Web-приложениях, как с использованием JSP, так и с помощью современных технологий: Thymeleaf, Freemarker, и т.д.
10 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
CRUD приложение с Web UI и хранением данных в БД. Создайте приложение с хранением сущностей в БД (можно взять DAOs из прошлых занятий)

Использовать классический View, предусмотреть страницу отображения всех сущностей и создания/редактирования.

View на Thymeleaf, classic Controllers.
Современные приложения на Spring MVC
Слушатели смогут создавать современные приложения (основанные на AJAX архитектуре и SPA-приложения).
Ну и, конечно, после данного занятия слушатели смогут создавать контроллеры всех сортов и мастей для решения большого спектра задач в веб-приложениях.

А также слушатели познакомятся с высокоуровневым WebFlow для описания Web-приложений.
14 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
Переписать приложение с использованием AJAX и REST-контроллеров. Переписать приложение с классических View на AJAX архитектуру и REST-контроллеры.

Опционально: Сделать SPA приложение на любом из Web-фреймоврков
Reactive Stack
В данном модуле слушатели узнают, что такое Reactive программирование и познакомятся со Spring Reactive Stack для разработки веб-приложений.
17 августа, 20:00 — 21:30
Spring WebFlux
После данного занятия слушатели смогу создавать современные Reactive Web-приложения с помощью Spring WebFlux.
21 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
Использовать WebFlux. Вместо классического потока и embedded Web-сервера использовать WebFlux.
"Около" и "Дзен"
В данном модуле рассматриваются продвинутые проекты Spring решающие специфичные задачи, связанные с авторизацией и аутентификацией, размещения сервисов в облаках и работой с БД, а также облегчающие создание больших монолитов и систем на микросервисной архитектуре.
Spring Security: Архитектура
По окончанию занятия слушатели разберутся что такое аутентификация и авторизация, разберутся в архитектуре Spring Security, и смогут настроить HTTP Basic Auth аутнетификацию.
24 августа, 20:00 — 21:30
Spring Security: Механизмы аутентификации
По окончанию занятия слушатели смогут внедрять в приложение любой механизм аутнетификации.
28 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
В CRUD Web-приложение добавить механизм аутентификации. В существующее CRUD-приложение добавить мехнизм Form-based аутентификации.

UsersServices реализовать самостоятельно.
Spring Security: Авторизация
После занятия пользователи смогу внедрять в приложение различные механизмы авторизации - на основе URL, методов сервисов.
31 августа, 20:00 — 21:30
Spring Security: ACL
После прохождения данного модуля слушатели научатся внедрять в приложение безопасность на основе доменных сущностей: ACLs
4 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Ввести авторизацию на основе URL и/или доменных сущностей. Настроить в приложении авторизацию на уровне URL и/или доменных сущностей.
Reactive Spring Data
По окончанию данного модуля слушатели научаться использовать Reactive-версию Spring Data репозиториев, и, наконец, полноценно использовать Reactive Stack Spring.
7 сентября, 20:00 — 21:30
Spring Batch
Слушатели смогут использовать всю мощь Spring Batch, узнают когда он необходим проекту и почему он нужен не только для больших проектов.
11 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Разработать процедуру миграции данных из реляционного хранилища в NoSQL или наоборот. Используя Spring Batch.

Опционально: Сделать restart с помощью Spring Shell.
Spring Integration: Монолиты vs. Microservices Round 1, Messaging, Enterprise Integration Patterns (EIP)
По окончании данного модуля слушатели узнают два похода к разработке Enterprise-приложений - монолиты и микросервисы.
Узнают, какие проблемы возникают при создании монолитов, что такое Messaging и Enterprise Integration Patterns (EIP) и где здесь Spring Integration.
14 сентября, 20:00 — 21:30
Spring Integration: Messages и Channels
Слушатели узнают различные семантики каналов, все сорта различных каналов и где они используются.
Также слушатели узнают о сообщениях, которые передаются в каналах и встроенный DSL для настройки связей в Spring Integration.
Также слушатели узнают про базовые Endpoints и Flow Components.
18 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Реализовать обработку доменной сущности через каналы Spring Integration. Выберите подходящий канал для каждого соответствующего запроса

Опционально: протестируйте приложение под нагрузкой.
Spring Integration: Endpoints и Flow Components
Слушатели также узнают про другие Endpoints и Flow Components и смогут разрабатывать сложные Enterprise-приложения c почти любой интеграцией.
21 сентября, 20:00 — 21:30
Spring Boot Actuator: Монолиты vs. Microservices (Round 2), Must have в микросервисах
На данном занятии слушатели будут рассматривать возможности Spring Boot Actuator для создания production-grade приложений и микросервисов, а потом будут долго отходить от таких возможностей и изобилия.

Также в данном разделе будет рассмотрен HATEOAS подход для разработки REST-сервисов.
25 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Использовать метрики, healthchecks и logfile к приложению. И любую другую функциональность на выбор.

Опционально: переписать приложение на HATEOAS принципах.
SOAP, Spring WebServices и клиенты к ним
После занятия слушатели овладеют одним из самых простых способов создания SOAP-сервисов и клиентов к ним Spring WebServices, ну и, конечно будет рассмотрены SOA и SOAP.
28 сентября, 20:00 — 21:30
Docker, оркестрация, облака, облачные хостинги
По окончании данного занятия слушатели смогут разбираться в вышеперечисленных словах, а также разбираться в современных принципах построения облачных систем.
2 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Обернуть приложение в docker-контейнер. Обернуть приложение в docker-контейнер, БД тоже. Настроить связь между ними.

Опционально: сделать это в локальном кубе.
Spring Cloud: Config Server, Service Registry, интеграция в облака
Слушатели научаться пользоваться возможностями Spring для интеграции с облаками: Config Server, Service Registry, Docker/Kubernates/AWS/Azure best-practices.
5 октября, 20:00 — 21:30
Spring Cloud Data Flow, Hystrix Circuit Breaker
Слушатели смогут узнать как строятся огромные системы на Spring с использованием Spring Cloud Data Flow.

Также будет рассмотрен популярный фреймворк для использования внешних систем и ресурсов - Hystrix (+Hystrix Javanica) и его интеграция со Spring.
9 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Обернуть внешние вызовы в Hystrix. Обернуть все внешние вызовы в Hystrix, Hystrix Javanica.

Поднять Turbine Dashboard для мониторинга.
Обзор дополнительных технологий Spring, выбор архитектуры и технологий
По окончанию занятия слушатели познакомятся с другими проектами Spring для создания приложений.

Смогут правильно выбирать архитектуру и стек технологий для проекта.
12 октября, 20:00 — 21:30
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе.
При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

Проект должен стать примером кода, который можно показывать потенциальным работодателям.

Проект должен быть сделан на основе Spring Boot, включать работу с DB с ипользованием Spring Data репозиториев и/или Spring JDBC.
Проект должен иметь UI построенный на современных принципах разработки Web-приложений (AJAX и/или SPA).
Приложение должно содержать механизмы аутентификации и авторизации с исопльзованием Spring Security
Асинхронные части могут быть реализованы с момощью Spring Integration.
Пектные обработки, утилиты поддержки должны быть реализованы с помощью Spring Batch + Spring Shell.
Проект должен быть cloud-ready.

Примеры тем:
Онлайн-билиотека.
Блог с админкой/регистрацией пользователей.

Преподаватель

Юрий Дворжецкий
Ведущий разработчик в Luxoft, кандидат физико-математических наук.
Программирует с начальных классов.

Разрабатывает на разных платформах: большие и маленькие проекты, высоконагруженные и очень красивые, многим известные и совсем специфические.

Влюблён в элегантность и оригинальность JavaScript, как классического, так и современного, во всех его проявлениях.

Сейчас разрабатывает Web-приложения c UI на React и Angular*.
Преподаватель курсов:
Разработчик на Spring Framework