Как обрабатывается @Value в Spring Boot?

Я изучаю Spring Boot и наткнулся на внешнюю конфигурацию. Значения свойств, определенные в файле application.properties, можно использовать в приложении для получения значений с помощью @Value,

Содержимое моего файла application.properties -

car.bmw.name=BMW M1

Я использую это значение свойства в конструкторе, делая это в одном из моих файлов -

public BMWCar(@Value("${car.bmw.name}") String carName) {
    // some code here
}

Работает нормально, проблем нет. Но даже если я сделаю что-то вроде

@Value("${car.bmw.name:SOMEJUNKNAME}"

в конструкторе используется правильное значение (BMW M1) свойства. Так как же это работает? Что-нибудь после ...name и в имени свойства, используемого в @Value игнорируется? Насколько я понимаю, значение свойства не должно выбираться, если заполнитель не указан правильно.

0 ответов

Другие вопросы по тегам