Введение
В данном модуле будут рассматриваться понятия и функциональности, на которых базируются все проекты Spring: Inversion of Control (Spring Context), аспектное программирование (Spring AOP), Spring Expression Language (SpEL). Слушатели смогут правильно и эффективно конфигурировать Spring-приложения различными средствами и способами, а также будет рассмотрена "чёрная магия" Spring Boot - автоконфигурации.
Тема 1: Введение в Spring Framework
Тема 2: Конфигурирование Spring-приложений
Тема 3: ЛикБез - Основы архитектуры ПО
Тема 4: AOP, Spring AOP
Тема 5: "Чёрная магия" Spring Boot
Тема 6: Продвинутая конфигурация (часть 1) - Scopes, Lifecycle
Тема 7: Продвинутая конфигурация (часть 2) - Conditionals, Events, тестирование
Тема 8: Разбор домашних заданий, QnA
Работа с базами данных
В данном модуле будет рассмотрены проекты 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 для подключения к нереляционным БД
Тема 8: Разбор домашних заданий, QnA
Разработка Web-приложений
В данном модуле будут рассматриваться возможности Spring для разработки Web-приложений: Spring MVC и современный Reactive-ориентированный Spring WebFlux. Разумеется, будут рассмотрены популярные технологии View и разработка современных SPA-приложений. И, конечно, различные "плюшки" Spring Boot, максимально ускоряющие разработку Web-приложений.
Тема 1: Введение в Spring MVC, Spring MVC на Spring Boot
Тема 2: Spring MVC View
Тема 3: Современные приложения на Spring MVC
Тема 4: Реактивное программирование
Тема 5: Reactive Spring Frameworks
Тема 6: Spring WebFlux
"Около" и "Дзен"
В данном модуле рассматриваются продвинутые проекты Spring, решающие специфичные задачи, связанные с авторизацией и аутентификацией, размещением сервисов в облаках и работой с БД, а также облегчающие создание больших монолитов и систем на микросервисной архитектуре.
Тема 1: Вебинар-собеседование
Тема 2: Spring Security: Архитектура
Тема 3: Spring Security: Механизмы аутентификации
Тема 4: Spring Security: Авторизация
Тема 5: Spring Security: ACL
Тема 6: Spring Batch
Тема 7: Монолиты vs. Microservices Round 1, Messaging, Enterprise Integration Patterns (EIP)
Тема 8: Spring Integration: Messages и Channels
Тема 9: Spring Integration: Endpoints и Flow Components
Тема 10: Монолиты vs. Microservices (Round 2), Spring Boot Actuator - must have в микросервисах
Тема 11: REST-клиенты, SOAP, Spring WebServices и клиенты к ним
Тема 12: Docker, оркестрация
Тема 13: Знакомство с Kubernetes
Тема 14: Облака, Mongo DB Atlas cluster, Spring Cloud
Тема 15: Spring Cloud Config, Spring Cloud Bus, Spring Cloud Service Discovery с Eureka, Ribbon и Feign
Тема 16: Zuul, Hystrix Circuit Breaker, Sleuth, Zipkin, Hystrix Dashboard, Secure Configuration Properties
Тема 17: Обзор дополнительных технологий Spring, быстрая разработка приложений
Тема 18: Применение RabbitMQ
Тема 19: Применение 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