В этом месяце (16 октября 2019 г.) был официально выпущен Spring Boot 2.2!В этой статье я познакомлю вас с новыми важными изменениями, которые привносит в вас версия 2.2. Автор пишет с душойНадеюсь на ретвит и подписку после прочтения, ваша поддержка - моя неиссякаемая творческая мотивация!
1. Конфигурация глобальной ленивой инициализации Spring bean
Новая функция, представленная в Spring Boot 2.2,Глобальная ленивая инициализация bean-компонентаподдержка (по умолчанию эта функция отключена). Итак, что произойдет, если включена глобальная ленивая инициализация bean-компонентов?
- Все весенние бобыи их зависимости создаются только тогда, когда они используются.
Чтобы сократить процесс инициализации и время запуска вашего приложения, теперь вы можете включить глобальную ленивую инициализацию компонентов Spring, используя следующую конфигурацию свойств:
spring.main.lazy.initialization=true
Но недостаток глобальной ленивой инициализации очевиден, при любой ленивой инициализации первая обработка HTTP-запроса может занять больше времени. Последующие запросы не затрагиваются. Поэтому его следует использовать с осторожностью. Если вы не хотите глобально использовать bean-компоненты Spring с отложенной инициализацией, вы можете рассмотреть возможность настройки отложенной инициализации для конкретного bean-компонента с помощью аннотации @Lazy.
2. JMX отключен по умолчанию
Начиная с Spring Boot 2.2, JMX по умолчанию отключен. Это помогает сократить время запуска приложения, не тратя много ресурсов во время работы. Если вы полагаетесь на JMX, вы можете включить его снова:
spring.jmx.enabled=true
3. Класс, аннотированный @ConfigurationProperties, инициализируется как bean-компонент.
Spring Boot создаст bean-компонент для каждого класса конфигурации @ConfigurationProperties, обнаруженного при сканировании пути к классам. В процессе разработки предыдущей версии, если мы хотим, чтобы класс конфигурации был инициализирован как bean-компонент, нам нужно использовать аннотацию @Component в классе конфигурации, чтобы сделать его bean-компонентом. Сейчас нет необходимости, просто аннотация @ConfigurationProperties.
Примечание. Если используются обе аннотации, аннотированный класс может создать два bean-компонента, поэтому удалите аннотацию @Component. Не используйте оба вместе.
В-четвертых, поддержка Java 13.
Java 13 был официально выпущен 17 сентября 2019 года.
Spring Framework 5.2 и Spring Boot 2.2 также поддерживают Java13. LTS Java версии 8 и 11 останутся совместимыми с Spring Boot 2.2.
Пять, изменение конфигурации (ключа)
Spring Boot 2.2 представляет множество новых конфигураций. Есть также некоторые устаревшие и удаленные конфигурации. Более важные изменения:
- Свойство logging.file было переименовано в logging.file.name.
- Свойство logging.path было переименовано в logging.file.path.
6. Обновление зависимостей
Spring Boot 2.2 поставляется с рядом обновлений зависимостей.
Обновления зависимостей, связанные с Spring:
- Spring Framework 5.2.0
- Spring AMQP 2.2.0
- Spring Batch 4.2.0
- Spring Data Moore RELEASE
- Spring HATEOAS 1.0.0
- Spring Integration 5.2.0
- Spring Kafka 2.3.0
- Spring Security 5.2.0
- Spring Session Corn
Другие наиболее важные обновления зависимостей:
- Elasticsearch 6.8.3(see breaking changes: in6.5,6.6and6.7)
- Flyway 6.0.6
- HSQLDB 2.5.0
- Jackson 2.10.0
- Jersey 2.29.1
- Kafka 2.3.0
- Kotlin 1.3.50
- Lombok 1.18.10
- Micrometer 1.3
- Netty 4.1.42
- Reactor Dysprosium
- Solr 8.2.0
- Tomcat 9.0.27
Обновление тестовой зависимости:
- AssertJ 3.13.2(breaking changes)
- Hamcrest 2.1
- Mockito 3.1.0
- Junit 5.5.2 (старинный движок JUnit 5 по-прежнему поддерживает существующие тестовые классы на основе JUnit 4, поэтому здесь нет серьезных изменений)
Ждем вашего внимания
- Блогер недавно написал новую книгу:«Прикоснитесь к своим рукам, чтобы научить вас изучать серию SpringBoot — 16 глав, 97 разделов»
- Эта статья воспроизводится с указанием источника (должна быть ссылка, а не только текст):Блог Адетокунбо.