Spring
Spring Core, Spring Boot, Spring Web, Spring AOP, Spring Security, Spring Data, REST
What you will learn
Spring Core
Spring Boot
Spring Test
Spring Data
Spring Web
Spring Validation
Spring Security
Spring AOP
Why take this course?
Spring - это самый распространенный фреймворк для написания Java приложений. Первая версия вышла еще в далеком 2003 году, после чего Spring претерпел очень много изменений и стал по-настоящему монструозным. Это повлекло разбиение его на множество отдельных модулей, которые будут разобраны в курсе:
1. Spring Core - ядро фреймворка, на чем держатся все остальные модули. Именно с него и начнется изучение этого курса, а именно с таких понятий и определений как инверсия управления (Inversion Of Control) и внедрение зависимостей (Dependency Injection).
2. Spring Boot - это тот же Spring, просто с возможность автоконфигурирования модулей. И это действительно упростило работу с таким монструозным фреймворком и без него не пишется ни одно современное Spring приложение.
3. Spring Test - каждое приложение должно быть хорошо покрыто разными уровнями тестирования, и этот модуль предоставляет функционал для этого, поднимая Spring Context и сразу добавляя необходимые зависимости в проект.
4. Spring Data - модуль для работы с самыми распространенными базами данных, как реляционные, так и нереляционные (NoSQL)
5. Spring Web - написание именно веб приложений, ведь в текущий момент времени все приложения общаются друг с другом по сети, поэтому Web - это неотъемлемая часть изучения каждого разработчика.
6. Spring Security - работа по сети заставляет улучшать авторизацию и аутентификацию в приложении, повышать его безопасность, а значит необходимо готовое решение из коробки, что и предоставляет нам Spring в виде модуля Security.
7. Spring AOP - существует очень много сквозной логики, которая не несет смысловой нагрузки в понимании бизнес логики приложений, но тем не менее должна присутствовать везде - это логирование, управление транзакциями, Proxy и т.д. Для этого и был создан модуль Spring AOP и новый подход в выносе сквозной логики - это аспектно-ориентированное программирование.
И все это - только часть того, что предоставляет Spring и его экосистема, ведь в нем собраны и другие модули для работы с Cloud, Message Brokers, Reactive, Batch, Mobiles, etc.
Для успешного понимания и прохождения всего курса необходимо хорошее понимания Java Core, работа с сетями HTTP. Servlets, работа с базами данных SQL и Hibernate, тестирование приложений JUnit5, и автоматизированной сборки проекта Gradle.