В данном модуле будут рассматриваться понятия и функциональности, на которых базируются все проекты Spring: Inversion of Control (Spring Context), аспектное программирование (Spring AOP), Spring Expression Language (SpEL). Слушатели смогут правильно и эффективно конфигурировать Spring-приложения различными средствами и способами, а также будет рассмотрена "чёрная магия" Spring Boot - автоконфигурации.
Тема 1: Знакомство с курсом
Тема 2: Введение в Spring Framework // ДЗ
Тема 3: ЛикБез - Основы архитектуры ПО
Тема 4: Конфигурирование Spring-приложений // ДЗ
Тема 5: AOP, Spring AOP
Тема 6: "Чёрная магия" Spring Boot // ДЗ
Тема 7: Продвинутая конфигурация (часть 1) - Scopes, Lifecycle
Тема 8: Продвинутая конфигурация (часть 2) - Conditionals, Events, тестирование // ДЗ
В данном модуле будет рассмотрены проекты Spring для работы как с реляционными базами данных, так и с NoSQL базами данных. Spring JDBC, Spring ORM, Spring Data Repositories и, разумеется, работа с транзакциями. Помимо проектов Spring, участники смогут разбираться в особенностях различных баз данных, а также использовать специальные embedded-базы даных.
Тема 1: DAO на Spring JDBC // ДЗ
Тема 2: Основы ORM, JPA, Hibernate как провайдер JPA
Тема 3: JPQL, Spring ORM, DAO на основе Spring ORM + JPA // ДЗ
Тема 4: Транзакции, Spring Tx
Тема 5: "Белая магия" Spring Data: Spring Data JPA // ДЗ
Тема 6: SQL и NoSQL базы данных
Тема 7: Spring Data для подключения к нереляционным БД // ДЗ
В данном модуле будут рассматриваться возможности Spring для разработки Web-приложений: Spring MVC и современный Reactive-ориентированный Spring WebFlux. Разумеется, будут рассмотрены популярные технологии View и разработка современных SPA-приложений. И, конечно, различные "плюшки" Spring Boot, максимально ускоряющие разработку Web-приложений.
Тема 1: Введение в Spring MVC, Spring MVC View на Spring Boot // ДЗ
Тема 2: Современные приложения на Spring MVC // ДЗ
Тема 3: Reactor. Введение в реактивное программирование
Тема 4: Spring WebFlux // ДЗ
Тема 1: Spring Security: Архитектура
Тема 2: Spring Security: Механизмы аутентификации // ДЗ
Тема 3: Spring Security: Авторизация
Тема 4: Spring Security: ACL // ДЗ
В данном модуле рассматриваются продвинутые проекты Spring, решающие специфичные задачи, связанные с авторизацией и аутентификацией, размещением сервисов в облаках и работой с БД, а также облегчающие создание больших монолитов и систем на микросервисной архитектуре.
Тема 1: Spring Batch // ДЗ
Тема 2: Монолиты vs. Microservices Round 1, Messaging, Enterprise Integration Patterns (EIP)
Тема 3: Spring Integration: Messages и Channels
Тема 4: Spring Integration: Endpoints и Flow Components // ДЗ
Тема 5: Монолиты vs. Microservices (Round 2), Spring Boot Actuator - must have в микросервисах // ДЗ
Тема 6: REST-клиенты, SOAP, Spring WebServices и клиенты к ним
Тема 7: Docker, оркестрация // ДЗ
Тема 8: Знакомство с Kubernetes
Тема 9: Spring Cloud. Конфигурация и взаимодействие
Тема 10: Spring Cloud. Отказоустойчивость и мониторинг
Тема 11: Применение RabbitMQ
Тема 12: Применение Kafka
Тема 13: Комплексный пример использования WebFlux и Kafka
Заключительный месяц курса посвящен проектной работе. Свой проект - это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей. Проект должен стать примером кода, который можно показывать потенциальным работодателям. Проект должен быть сделан на основе Spring Boot, включать работу с DB с ипользованием Spring Data репозиториев и/или Spring JDBC. Проект должен иметь UI построенный на современных принципах разработки Web-приложений (AJAX и/или SPA). Приложение должно содержать механизмы аутентификации и авторизации с использованием Spring Security Асинхронные части могут быть реализованы с помощью Spring Integration. Пектные обработки, утилиты поддержки должны быть реализованы с помощью Spring Batch + Spring Shell. Проект должен быть cloud-ready. Примеры тем: - Онлайн-библиотека - Блог с админкой/регистрацией пользователей
Тема 1: Выбор темы и организация проектной работы
Тема 2: Защита проектных работ №1
Тема 3: Защита проектных работ №2