Выбор ответа Senior Spring Boot и автоконфигурация обновлено

@EnableWebMvc в Boot

Вопрос

Разработчик добавил @EnableWebMvc на конфигурацию в Spring Boot приложении. Что изменится?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Отключится автоконфигурация MVC: пропадут настройки Boot. WebMvcAutoConfiguration помечена @ConditionalOnMissingBean(WebMvcConfigurationSupport.class), а @EnableWebMvc как раз регистрирует этот класс.

Варианты ответа

  1. Отключится автоконфигурация MVC: пропадут настройки Bootправильный ответ
  2. Ничего: аннотация просто дублирует автоконфигурацию MVC
  3. Включится WebFlux вместо MVC для всех контроллеров
  4. Приложение не стартует из-за двух конфигураций MVC

Разбор

WebMvcAutoConfiguration помечена @ConditionalOnMissingBean(WebMvcConfigurationSupport.class), а @EnableWebMvc как раз регистрирует этот класс. В итоге Boot перестаёт настраивать MVC, и, например, свойства spring.mvc.* и раздача статики по умолчанию перестают работать. Чтобы донастроить MVC в Boot, реализуют WebMvcConfigurer без @EnableWebMvc.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме