Получи случайную криптовалюту за регистрацию!

#springboot3 #milestone #java 20 января 2022 года выпущен Spr | middlejava

#springboot3 #milestone #java

20 января 2022 года выпущен Spring Boot 3.0.0-M1

Учитывая информацию ниже, пока это бесполезный для применения релиз, чисто понимать, что работа ведется.

Релиз доступен в репозитории https://repo.spring.io/milestone.
В этом релизе бейзлайн повышен с Java 8 до Java 17.
Новые релизы Spring Boot 3.0 планируется выпускать каждые два месяца.
M2 должен появиться 24 марта. GA планируется в конце ноября.
Все API Java EE перенесены в аналогичные пакеты Jakarta EE.
Для большинства пользователей это означает, что нужно будет заменить импорты javax на jakarta.
Например, javax.servlet.Filter надо заменить на jakarta.servlet.Filter.
Несколько сторонних библиотек еще не выпустили версии, совместимые с Jakarta EE, поэтому не все функции Spring Boot 2.x доступны в данном релизе.
По мере адаптации библиотек, соответствующие функции будут появляться в релизах Spring Boot.

Spring Boot 3.0 требует Java 17 в качестве минимальной версии и Spring Framework 6.
Для Gradle-приложений, требуется Gradle 7.3 или более поздней версии.
В тех случаях, когда загрузка Spring зависит от спецификации Jakarta EE, версия 3.0 обновлена до версии, включенной в Jakarta EE 9. Например, Spring Boot 3.0 использует спецификации Servlet 5.0 и JPA 3.0.

Чтобы различать модули, поддерживающие Jakarta EE 8 и Jakarta EE 9, некоторые проекты выпустили модули для Jakarta EE 9 с другими ID артефактов. Например, Undertow использует суффикс -jakartaee9, а Hibernate использует -jakarta. Стартеры Spring Boot должны учитывать эти изменения. Если вы объявляете зависимости на сторонние модули напрямую, то вам может потребоваться обновить объявления зависимостей, используя ID артефактов, совместимых с EE 9.

На данный момент удалена поддержка следующих модулей:

- EhCache 3
- H2’s web console
- Hibernate’s metrics
- Infinispan
- Jolokia
- Pooled JMS
- REST Assured
- SMTP appending with Logback
- SMTP appending with Log4j 2

Поддержка Jersey также временно удалена, так как он еще не поддерживает Spring Framework 6.

Поддержка следующих зависимостей была удалена в Spring Boot 3.0:

- Apache ActiveMQ
- Atomikos
- EhCache 2
- Hazelcast 3

Управление зависимостями для Apache Johnzon было удалено в пользу Eclipse Yasson. Версия Apache Johnzon, совместимая с Jakarta EE 9, может использоваться со Spring Boot 3, но теперь вам надо указывать версию в объявлении зависимости.

Spring Boot 3.0.0-M1 переходит на новые версии следующих проектов Spring:

- Micrometer 2.0.0-M1
- Spring AMQP 3.0.0-M1
- Spring Batch 5.0.0-M1
- Spring Data 2022.0.0-M1
- Spring Framework 6.0.0-M2
- Spring Integration 6.0.0-M1
- Spring HATEOAS 2.0.0-M1
- Spring Kafka 3.0.0-M1
- Spring LDAP 3.0.0-M1
- Spring REST Docs 3.0.0-M1
- Spring Security 6.0.0-M1
- Spring Session 2022.0.0-M1
- Spring Web Services 4.0.0-M1

Также были обновлены многочисленные сторонние зависимости, некоторые наиболее примечательные из которых следующие:

- Artemis 2.20.0
- Hazelcast 5.0
- Hibernate Validator 7.0
- Jakarta Activation 2.0
- Jakarta Annotation 2.0
- Jakarta JMS 3.0
- Jakarta JSON 2.0
- Jakarta JSON Bind 3.0
- Jakarta Mail 2.0
- Jakarta Persistence 3.0
- Jakarta Servlet 5.0
- Jakarta Servlet JSP JSTL 2.0
- Jakarta Transaction 2.0
- Jakarta Validation 3.0
- Jakarta WebSocket 2.0
- Jakarta WS RS 3.0
- Jakarta XML Bind 3.0
- Jakarta XML Soap 2.0
- Jetty 11
- jOOQ 3.16
- Tomcat 10

Помимо перечисленных изменений, также внесены некоторые незначительные изменения и улучшения, в том числе:

Java SecurityManager устарел в JDK, поэтому его поддержка удалена.
CommonsMultipartResolver удален в Spring Framework 6, поэтому в релизе он тоже удален.

В общем боевой вариант увидим, думаю, через год.

@middle_java
t.me/middle_java