Как обрабатывается @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
игнорируется? Насколько я понимаю, значение свойства не должно выбираться, если заполнитель не указан правильно.