Spring Framework6 и Spring Boot3 — это скачок вперед. Минимальная версия JDK, поддерживаемая всей платформой, напрямую переходит на JDK17. Огромные изменения были внесены как на уровне инфраструктуры, так и на уровне инфраструктуры. Какие конкретные функциональные обновления и улучшения были сделаны. в новой среде Spring 6.0 необходимо ли ее обновлять и использовать? Вы можете продолжить осмотр.
Ниже вы можете сначала взглянуть на промо-блог, переведенный с официального сообщества Spring.
Дорогой Spring Сообщество: Я рад сообщить об этом сейчас MavenCentral Уже доступно SpringFramework6.0.0 Понятно! Это 2023 Начало нового поколения фреймворков в 2018 году и далее, включая OpenJDK и Java Экосистема середина: текущие и будущие инновации. В то же время мы тщательно разработали его из Spring Framework 5.3.x Непосредственное обновление до современной среды выполнения. В качестве серьезного пересмотра базовой структуры Spring framework 6.0 Поставляется с Java 17+ базовый уровень и Jakarta EE 9+ (в Jakarta пространство имен), с акцентом на недавно выпущенные Jakarta EE10 API, например Servlet 6.0 и JPA 3.1. Это обеспечивает доступ к последним web Контейнеры (например, Tomcat 10.1) и новейшие поставщики персистентности (например, Hibernate ORM 6.1) Доступ. не придерживайся JavaEE8, перейдите к jakarta пространство имен, лучше сразу перейти к JakartaEE10 уровень! Предстоящие SpringBoot3.0.0 Версия предоставляет вам соответствующие управляемые зависимости. Инфраструктура, 6,0 для конвертации заранее и соответственно AOT поддержка обработки Spring Контекст приложения обеспечивает основу. Это делает Spring Boot 3 способен GraalVM Локальные изображения обеспечивают первоклассную поддержку. Вы также можете изучить Project Loom виртуальный поток и Spring Приложения. См. раздел «Использование виртуальных потоков» и узнайте больше. Project CRaC Метод восстановления контрольной точки для ускорения JVM скорость запуска, обе функции в настоящее время находятся в предварительной версии, но ожидается, что они будут основаны на SpringFramework6.x Первоклассный функционал приложения. Весна Framework 6.0 середина имеет множество других функций и улучшений, таких как HTTP Интерфейсный клиент, пара RFC 7807 Поддержка с подробностями проблемы и HTTP Клиентская база В микрометр для Наблюдательности. Посетите нашу страницу «Что нового», чтобы получить подробный обзор, и опробуйте его заранее. 6.0.0!2022 Год 11 луна 16 день Cheers,Juergen
есливерно Если вас интересует оригинальный текст, вы можете напрямую посетить официальный оригинальный текст.spring.io/blog/2022/1…
Из официального рекламного контента мы видим, что Spring внес множество улучшений в инфраструктуру:
Для тех из нас, кто в основном использует CRUD, изменение функциональности, возможно, пока не стоит полного обновления. Давайте посмотрим на исторические версии, поддерживаемые Spring в целом.
В настоящее время официальные лица рекомендуют, если это возможно, обновить MavenCentral до последней версии SpringFramework6.0.x.
Согласно официальной документации, совместимые версии Spring и JDK следующие:
можно увидеть 5.3.x и ниже версии совместимы JDK8 из, Если вы не планируете полностью обновиться в ближайшее время JDK17 Можно использовать 5.3.x версия совместима не только с JDK8 Также будет совместим 11 и 17 Это две стабильные версии.
Опираясь на историческую справку, перейдем непосредственно к теме: Каковы новые возможности Spring Framework 6.x?
общий Spring6 Было сделано много обновлений, и следующий шаг — Подвести Итог Еще несколько важных моментов:
самый низкий JDK Поддерживаемая версия изменена на JDK17, возможно, все к этому привыкли JDK8, это бесплатно и стабильно Поддерживаемые версии,на самом деле JDK Сообщество выпустило поддержку G1 Стабильная версия сборщика мусора JDK11,JDK11 Как и эта переходная версия, и JDK8 Сообщество будет оказывать поддержку примерно столько же времени и будет дополнительно обновляться. JDK11 Для официального использования также требуется много тестов на совместимость, лучше использовать напрямую. JDK17 С удовольствием.
JDK17 представил ЗГК, в GC Задержка, JDK 17 Улучшение более очевидно. По данным чьего-то стресс-теста в Интернете, в Parallel середина JDK 17 контраст JDK 8 и JDK 11 продвигать 40%; G1 середина,JDK 11 контраст JDK 8 продвигать 26%,**JDK 17 контраст JDK 8 продвигатьоколо 60%!**ZGC середина JDK 17 контраст JDK 11 продвигать Превосходить 40%. если прав GC Пользователи с более высокими требованиями к задержке могут рассмотреть возможность испытать ее как можно раньше. JDK17。
JDK 17 это Oracle Официально объявлено, что его можно бесплатно использовать в коммерческих целях. LTS версия, так называемая ЛТС, да Long Term Поддержка, которая является официальной гарантией долгосрочной поддержки. версия, по официальным данным может быть вплоть до утверждения 2029 Год 9 лунаделиться。
Многие люди, возможно, слышали о JIT, а термин AOT они услышали впервые. Позвольте мне объяснить это ниже:
Основное различие между этими двумя методами компиляции заключается в том, следует ли компилировать во время выполнения JIT, а именно JIT-компиляцию, динамическую (точно в срок) компиляцию, компиляцию во время работы;
AOT, Ahead Of Time, относится к предварительной компиляции, которая представляет собой два способа компиляции программ.
Существует два способа компиляции Java-приложений: с использованием своевременной компиляции (JIT) или предварительной компиляции (AOT). Первый — это режим по умолчанию, который используется виртуальной машиной Java Hotspot для преобразования байт-кода в машинный код во время выполнения. Последний поддерживается новым компилятором GraalVM и позволяет статическую компиляцию байт-кода непосредственно в машинный код во время сборки.
JIT (Just-In-Time — компиляция точно в срок)
Во время работы программы код точки доступа рассчитывается на основе алгоритма, а затем JIT Компиляция в реальном времени. Этот метод имеет высокую пропускную способность, имеет бонус к производительности во время выполнения, может работать быстрее, может динамически генерировать код и т. д., но он относительно медленно запускается и требует определенного количества времени и частоты вызовов для запуска. JIT механизм наслоения. ТОЧНО в срок Недостатком является то, что для компиляции требуются ресурсы времени выполнения, что может привести к задержкам процесса.
AOT (Ahead-Of-Time — до компиляции)
AOT Компиляция может напрямую преобразовать исходный код в машинный код с низким использованием памяти и высокой скоростью запуска. Нет необходимости. runtime Беги, прямо runtime Статическая ссылка на конечную программу середина, но бонуса к производительности во время выполнения нет, и дальнейшая оптимизация не может быть выполнена в зависимости от условий работы программы, AOT Недостатком является то, что компиляция программы перед ее запуском увеличит время установки программы.
Сейчас, в эпоху облачных технологий, снижения затрат и повышения эффективности, Java по сравнению с Go、Rust Очень большим недостатком других языков программирования является то, что процесс компиляции и запуска очень медленный. Это противоречит облачной технологии эластичного расширения и сжатия, основанной на вычислительных ресурсах реального времени Spring6. С помощью AOT Технология занимает мало памяти при работе, а скорость запуска высокая, что постепенно удовлетворяет потребности Java Спрос в эпоху облачных технологий для крупномасштабного использования Java Коммерческие компании, применяющие его, могут рассмотреть возможность его изучения и использования как можно скорее. JDK17 использует облачную технологию, чтобы помочь компаниям сократить расходы и повысить эффективность.
Что касается AOT, давайте кратко представим термин «родной образ».
Native Image это инновационная технология, которая может Java Код компилируется в автономный собственный исполняемый файл или собственную общую библиотеку. Обрабатывается во время сборки собственного исполняемого файла. Java Байт-код включает в себя все классы приложений, зависимости, сторонние зависимые библиотеки и все необходимые JDK добрый. Полученный в результате автономный собственный исполняемый файл является специфичным и не требует JVM Каждая отдельная операционная система и архитектура машины.
Как упоминалось ранее, технология AOT, поддерживаемая Spring6, является базовой поддержкой Graalvm, а Spring также обеспечивает первоклассную поддержку собственных образов GraalVM.
GraalVM это высокая производительность JDK, предназначенный для ускорения использования Java и Другие JVM язык для выполнения приложений, написанных на JavaScript、Python Многие другие популярные языки предоставляют среды выполнения. GraalVM Предусмотрено две операции Java Способ применения: в HotSpot JVM Использовать на Graal немедленный (JIT) компилятор или как предварительный просмотр (AOT) Скомпилированный собственный исполняемый файл. GraalVM Многоязычные возможности позволяют смешивать несколько языков программирования в одном приложении, устраняя при этом затраты на вызовы на иностранных языках.
GraalVM К HotSpot Java Виртуальная машина добавляет пользователя Java Написал Advanced немедленный (JIT) Оптимизирующий компилятор.
Архитектура Graalvm показана на рисунке ниже:
GraalVM имеет следующие возможности:
Вообще говоря, требования к облачным технологиям не высоки, и их можно будет продолжать использовать в краткосрочной перспективе. 2.7.X версия JDK8, однако Spring Чиновники имеют Spring6 Официальная версия выпущена. Когда у вас будет достаточно сил для ее поддержки, вы можете попробовать. Spring6 и JDK17 Лучше провести проверку проекта на этих версиях и обновиться до этих версий как можно раньше для пилотного тестирования.