Как стать автором
Обновить

Пять вещей, которые нужно знать о Spring Framework 5

Время на прочтение2 мин
Количество просмотров33K

На этой неделе, сразу за релизом Java 9 вышла новая мажорная версия одного из самых популярных фреймворков для разработки приложения на Java — Spring Framework версии 5. Под катом подробности и краткое описание, что же поменялось.


Поддержка Java 9


Как и следовало ожидать, новый Spring вполне комфортно себя чувствует, работая на новой версии Java. Это означает, что новая версия Spring будет работать как включенная в classpath, так и в module path (используя automatic modules). Сборка и все тесты самого фреймворка работают на новой JDK9 (хотя по умолчанию все еще используют JDK8).


Реактивность


Новая версия фреймворка добавляет новый проект в копилку Spring — Spring Reactive Web Framework или WebFlux. Это полностью асихронный и неблокирующий веб-фреймоворк предназначенный для работы поверх event loop, как альтернативу традиционным сервлетам работающих поверх классического пула потоков.


Более того, т.к. новый реактивный веб это не развитие, а скорее параллельное направление с Spring MVC, он позволяет работать вне контейнеров сервлетов и даже создавать минималистичные microframework-like приложения — используя функциональный подход с WebFlux.fn.


Поддержка Kotlin


Kotlin теперь не только официально поддерживаемый Google язык для разработки на Andriod, но и официально поддерживаемый Spring-ом язык для backend разработки.


Поддержка Kotlin включает сразу несколько аспектов:


  • Функциональный Kotlin DSL для описания компонентов приложения (бинов) и роутов WebFlux
  • Поддержка Kotlin Script в качестве view engine, используя ScriptTemplateView
  • Поддержка иммутабельных классов, опциональных параметров, значений по умолчанию, и многое другое
  • Возможность создать новый проект с использованием Spring Initializr на Kotlin

Факт, чтобы оценить масштаб и серьезность — кода на Kotlin в ядре Spring уже больше, чем на Groovy.


Новая документация


Официальная документация была реструктурирована и разбита на небольшие модули, сгруппированные по функциональности.


Прочие изменения


Их достаточно много, но можно выделить несколько ключевых:


  • Null-safety используя JSR-305 аннотации. С этими аннтоациями умеет работать Kotlin, и инструменты анализа кода Java (например, IDEA их понимает, так же как и FindBugs)
  • Совместимость с Java EE 8 — Servlet 4.0, Bean Validation 2.0, JPA 2.2, JSON Binding API 1.0, Tomcat 9.0, Hibernate Validator 6.0
  • Функциональная регистрация компонентов (бинов) или WebFlux.fn — теперь DI можно конфигурировать не только через аннотации и XML, но и просто кодом, обращаясь напрямую к application context
  • Новый common logging bridge — spring-jcl (который автоматом умеет работать с Log4j 2.x, SLF4J, java.util.logging)
  • Улучшения в тестовом фреймворке — поддержка JUnit 5, параллельное выполнение тестов

Заключение


В общем, изменений очень много, новый фреймворк результат нескольких лет работы над проектом. Попробовать новый Spring 5 можно используя либо Spring Boot 2.0 build snapshot либо версию M5 которая выйдет на следующей неделе. Финальная версия Spring Boot 2.0 ожидается ближе к концу этого года.


Полезные ссылки:


Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Какую версию Spring вы используете?
0.88% Spring 2 и ниже4
5.49% Spring 325
45.71% Spring 4 и Spring Boot208
24.18% Spring 4, но без Spring Boot110
11.43% Уже обновились на Spring 5!52
12.31% Прочее (другие фреймворки, без фреймворков и т.п.)56
Проголосовали 455 пользователей. Воздержались 113 пользователей.
Теги:
Хабы:
Всего голосов 12: ↑11 и ↓1+10
Комментарии2

Публикации

Истории

Работа

Java разработчик
213 вакансий

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
14 мая
LinkMeetup
Москва
5 июня
Конференция TechRec AI&HR 2025
МоскваОнлайн
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область