У меня работает следующий код:
@Service
public class MyService {
@Value("${this.does.not.exist: 10}")
private int val;
С последней версией spring -boot (и в основном это должно быть с любой другой версией).
Так что проблема должна быть в другом месте .
Пожалуйста, проверьте следующее:
Убедитесь, что Foo
действительно управляется Spring (он находит это в процессе сканирования компонентов). В противном случае никто не будет вводить значение.
Убедитесь, что вы не пытаетесь прочитать значение из конструктора или чего-то еще: весной он сначала создает объект (и в этот момент значение поля действительно равно 0), и только после этого запускаются постпроцессоры bean для ввода значений, автоматического подключения и т. д. c.