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
Формат конфигурации 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 не поддерживает этот тип файла.
В настоящее время я просто знаю только об этом!