Spring Boot игнорирует тире в именах свойств в файлах YML.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring Boot игнорирует тире в именах свойств в файлах YML.

Сообщение Anonymous »

Я столкнулся со странным поведением Spring Boot (3.1.3) при использовании - в именах свойств. Вот пример кода:

Код: Выделить всё

@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

@SpringBootTest
class DemoApplicationTests {
@Value("${application.jokeurl}")
private String jokeUrl;
@Value("${application.joke-url}")
private String jokeDashUrl;

@Test
void contextLoads() {
System.out.println(jokeUrl);
System.out.println(jokeDashUrl);
}
}
А вот мой application.yml:

Код: Выделить всё

application:
joke-url: url1 #pay attention to dash in property name
Когда я запускаю тест, он выводит в консоль две строки:

Код: Выделить всё

url1
url1
Мы видим, что Spring вводит одну и ту же строку в значения, ссылаясь на самом деле на разные свойства, то есть @Value("${application.jokeurl}") и @Value("$ {application.joke-url}").
Теперь, если я добавлю еще одно свойство в application.yml как
< pre class="lang-yaml Prettyprint-override">

Код: Выделить всё

application:
joke-url: url1 #pay attention to dash in property name
jokeurl:  url2 #no dash in property name
один и тот же тест печатает разные строки:

Код: Выделить всё

url2
url2
Теперь мы видим, что свойство application.joke-url игнорируется в пользу application.jokeurl и снова вставляет одну и ту же строку в значения, ссылающиеся на разные свойства.
Итак, мой вопрос: это ошибка или ожидаемое поведение?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -yml-files
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»