application.yml vs application.properties для Spring Boot

В моем проекте я в настоящее время использую application.yml для настройки. Spring Initializr генерирует application.properties? Что такое Pro/Cons для каждого из них?

Ответ 1

Ну, это просто разные форматы данных. Какой из них лучше и легче читать? Это очевидно субъективно. Вот полезный пост в блоге.

Что касается конфигурации spring-boot, обратите внимание, что существует только один документированный недостаток использования YAML. По документации:

Файлы YAML не могут быть загружены через аннотацию @PropertySource. Поэтому в случае, когда вам нужно загрузить значения таким образом, вам нужно использовать файл свойств.

Ответ 2

Одно заметное отличие состоит в том, как свойства представлены в каждом файле. Файлы YAML могут использовать согласованные пробелы для обозначения иерархии, тогда как файл свойств может использовать = для обозначения значений свойств.

Например

Списки представлены иерархически в YAML:

заголовки:

  - user-agent
  - x-wag-diagonalsize

Списки могут быть представлены в виде встроенного списка (разделенных запятыми) в файле свойств:

заголовки = пользовательский агент, размер x-wag-diagonalsize

Другое отличие состоит в том, что мы можем добавить несколько файлов конфигурации в один файл yaml.

Например, мы можем добавить application.yaml (специфичные свойства приложения) и bootstrap.yaml (специфичные свойства сервера) в один файл config.yaml

Ответ 3

enter image description here Формат конфигурации YAML широко принят во всей SpringBoot

Ответ 4

Хороший вопрос, меня это тоже сразу смущает.

Подходит к делу, Согласно моим знаниям, есть некоторые различия,

1.) .properties file: Хранит данные в последовательном формате.    .yml file: Хранит данные в иерархическом формате.

2.) .properties file: Он поддерживает только пару ключ-значение, в основном строковые значения.    .yml file: Он поддерживает пару ключ-значение, а также карту, список и Значения скалярного типа.

3.) .properties file: Этот файл специально используется для JAVA.    .yml file: Этот тип файла используется многими языками, такими как JAVA, Python, ROR и т.д.

4.) Если вы хотите обрабатывать несколько профилей,    .properties file: В этом случае вам нужно управлять отдельным файлом для каждого профиля.    .yml file: В этом типе файла вам просто нужно управлять одним файлом и помещать в него данные конфигурации определенного профиля.

5.) Для проекта Spring,    .properties file: @PropertySource аннотация поддерживает этот тип файла.    Файл .yml: Аннотация @PropertySource не поддерживает этот тип файла.

В настоящее время я просто знаю только об этом!