Каковы основные нововведения в Spring Boot 2?

«Каковы основные нововведения в Spring Boot 2?» — вопрос из категории Spring, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Spring Boot 2.x стал крупным обновлением с переходом на Spring Framework 5. Основные изменения и нововведения:

  1. Поддержка Java 8+ и реактивного стека

    • Минимальная версия Java — 8. Полная поддержка Java 9 и выше.
    • Интеграция с Spring WebFlux для создания реактивных веб-приложений на основе Project Reactor (Flux, Mono).
      @RestController
      public class ReactiveController {
          @GetMapping("/users")
          public Flux<User> getUsers() {
              return userRepository.findAll(); // Реактивный репозиторий
          }
      }
  2. Новая система метрик и мониторинга с Micrometer

    • Замена Dropwizard Metrics на Micrometer — vendor-agnostic фасад для метрик. Позволяет легко экспортировать данные в Prometheus, Datadog, InfluxDB и другие системы.
    • Обновленные эндпоинты Actuator (/actuator), поддержка Health Groups.
  3. Обновления зависимостей

    • Hibernate 5.2+ (поддержка JPA 2.2).
    • Tomcat 8.5+ (поддержка Servlet 3.1+).
    • Gradle 4+.
  4. Улучшенная поддержка Kotlin

    • Нативная поддержка null-safety, DSL для конфигурации, корутины.
  5. Конфигурационные улучшения

    • Новые свойства, такие как spring.config.additional-location и spring.config.import для более гибкого управления конфигурацией.
    • Переработанная система автоконфигурации и стартеров.
  6. Безопасность по умолчанию

    • Для всех эндпоинтов Actuator, кроме /health и /info, по умолчанию включена аутентификация.
  7. Новые стартеры и поддержка технологий

    • Стартеры для Apache Kafka Streams, поддержка реактивных драйверов для MongoDB и Cassandra.

Версия 2.x заложила основу для современного, реактивного и более наблюдаемого стека Spring.