Выбор ответа Middle Spring Boot и автоконфигурация обновлено
@ConditionalOnProperty
Вопрос
Бин помечен @ConditionalOnProperty(name = "feature.export.enabled", havingValue = "true"). Свойство в конфигурации отсутствует. Создастся ли бин?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Нет: по умолчанию matchIfMissing = false. Если свойства нет, условие не выполняется, пока явно не указано matchIfMissing = true.
Варианты ответа
- Нет: по умолчанию
matchIfMissing = falseправильный ответ - Да: отсутствие свойства считается true
- Старт упадёт из-за отсутствующего свойства
- Да, но только в профиле default
Разбор
Если свойства нет, условие не выполняется, пока явно не указано matchIfMissing = true. Ошибки нет, бин просто не регистрируется, и зависимые от него бины могут упасть с NoSuchBeanDefinitionException. Профили тут ни при чём.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Где Boot берёт список автоконфигураций
Следующий вопрос
@ConfigurationProperties или @Value