Перейти к содержанию

Spring Framework

Spring

Spring — это самая популярная веб-экосистема в Java. Состоит из целого набора фреймворков разного назначения: работа с БД, облаками, безопасностью, и многое другое. Да, у него есть менее популярные альтернативы, но с высокой долей вероятности на работе ты столкнешься именно с ним. Так что добро пожаловать в «Весну».

Spring Core

Как у Java есть свой базовый Core, так есть он и у Spring. Стоит хорошенько разобраться в его составе, чтобы когда ты поднимешься на абстракцию выше, в Spring Boot, он не показался тебе загадочной магией.

Книги
Craig Walls. «Spring in Action 4»

Обрати внимание именно на 4-е издание. Да, мы в курсе, что есть шестое. Да, мы в курсе, что перевод на русский есть только на третье издание. Но в шестом издании нет подробного описания подкапотного устройства и выкинута настройка с помощью XML. Ты можешь подумать: «Какой XML, сейчас везде используют аннотации?», но твой будущий работодатель запиливший систему в мохнатых годах может не разделять твоё прогрессивное мнение. Так что читай 4-е издание и наслаждайся. Книга стоит того.

Курсы

На Udemy есть хороший инструктор, John Tompson, который шпарит курсы по Spring как автомат. Не обходи его вниманием и загляни сюда. Рассматривается более старая версия Spring (4), но за 6 часов даётся вполне неплохая база по Spring и затрагивается работа со Spring MVC.

Официальная документация

Казалось бы, зачем мы явно включили официальную документацию, если с самого начала усвоили, что стоит начинать поиск с неё? Однако со Spring ситуация несколько иная. Его документация ВОСХИТИТЕЛЬНА. Серьезно, эта документация одна из весомых причин, почему Spring так быстро завоевал популярность. Подробнейшие описания концептов Spring, сопровождаемые примерами кода, и многое, многое другое. Начни своё путешествие отсюда и поверь, очень многие вопросы у тебя не появятся, если ты внимательно ознакомишься с этими материалами.

YouTube

Широко известный в узком кругу лиц, Евгений Борисов периодически выступает с докладами, в которых разбирает устройство Spring по кусочкам. Делает он весьма весело, задорно и понятно. Рекомендуем приобщиться к его докладам:

Несмотря на то, что видео длится 2-4 часа, смотрится оно как отличный сериал. Крайне рекомендуем к просмотру.

Spring Boot

Spring Boot — это абстракция над абстракциями. Разработчики взяли обычный Spring, полезные библиотеки и упаковали всё это в фреймворк более высокого (по абстракции) уровня. Меньше бойлерплейта и головной боли, больше магии и головной боли. По причине бОльшего удобства и увеличенной скорости разработки, Spring Boot вытесняет классический Spring, так что в своих проектах смело используй именно его.

Курсы

Помнишь John Tompson? Даже если нет, самое время навернуть его 60-часовой курс по Spring Boot. В нем также затрагивается работа со Spring MVC, Spring Data и немножко Hibernate. Объясняет доступно, много примеров, простой английский язык. Полностью стоит своих денег.

Spring Data

Spring Data это целый набор различных продуктов, объединенных одной целью: упростить разработчику жизнь, предоставив ещё более высокий уровень абстракции для работы с данными. Продуктов этих довольно много (с полным перечнем можешь ознакомиться здесь), но на текущем этапе обрати внимание на Spring Data JPA. Если Hibernate — это абстракция над JDBC, то Spring Data — это по большей части абстракция над ORM-фреймворками. Hibernate там включен по умолчанию, но никто не заставляет использовать под капотом именно его.

Что же за удобные абстракции дает нам данный фреймворк? В первую очередь это репозитории. Возможно ты слышал про CRUD. Так вот, Spring позволяет по мановению волшебной палочки добавить к твоим сущностям эти самые CRUD-методы. Здорово, правда? Нам не нужно писать каждый раз стандартные методы, копипастить один и тот же код. За нас это всё делает машина, а мы просто пользуемся удобным API.

В остальном — это куча других плюшек, о пользе которых сейчас ты вряд ли будешь задумываться.

Для начала работы со Spring Data JPA тебе будет достаточно твоего опыта с Hibernate и чтения вводной документации от самого Spring.

Spring Web MVC

Сама MVC — это крайне популярная схема разделения мух от котлет. Модели (данные) отдельно, представление данных отдельно, связующий клей из контроллеров, которые обрабатывают действия пользователей и передают их кому надо отдельно. Удобно, меньше шансов сломать всё к чертям при доработках, народу нравится.

Конкретно Spring Web MVC помогает нам в реализации проектов с использованием данной схемы, предоставляя всё то, что мы так любим: абстракции, сахар и магию. Ну и например аннотации для разметки контроллеров, удобную настройку реквестов, работу с эндпоинтами и многое другое.

Чтобы узнать его получше, обратись к старой доброй документации.

Spring Security

После того, как ты создал своё web-приложение, вероятно, ты захочешь предоставить к нему доступ для пользователей. А где пользователи, там и логины и пароли. А где пароли, там и безопасность, личные данные, кросс-авторизации и злобные хакеры. Чтобы не страдать от головной боли, для нас создали фреймворк Spring Security, который дает нам удобный API и абстракции (в который раз), чтобы сделать наше приложение безопасным и надежным. Более подробно можно ознакомиться:

  • Приобщившись к официальной документации;
  • Прочитав отличную книгу «Spring Security in Action».

Упражнения

К сожалению набора задачек по Spring в классическом виде не существует. Но тут тебе может помочь HyperSkill, в котором есть учебные web-проекты; примеры проектов от самого Spring, например знаменитый PetClinic и реализация собственных пет-проектов. Давно хотел собственного телеграм-бота? Самое время начать его пилить с помощью Spring.


Последнее обновление: August 9, 2023
Дата создания: August 9, 2023