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

@ConditionalOnProperty

Вопрос

Бин помечен @ConditionalOnProperty(name = "feature.export.enabled", havingValue = "true"). Свойство в конфигурации отсутствует. Создастся ли бин?

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

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

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

Коротко

Правильный ответ: Нет: по умолчанию matchIfMissing = false. Если свойства нет, условие не выполняется, пока явно не указано matchIfMissing = true.

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

  1. Нет: по умолчанию matchIfMissing = falseправильный ответ
  2. Да: отсутствие свойства считается true
  3. Старт упадёт из-за отсутствующего свойства
  4. Да, но только в профиле default

Разбор

Если свойства нет, условие не выполняется, пока явно не указано matchIfMissing = true. Ошибки нет, бин просто не регистрируется, и зависимые от него бины могут упасть с NoSuchBeanDefinitionException. Профили тут ни при чём.

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

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

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