В моєму проекті я зараз використовую application.yml
для конфігурації. Spring Initializr згенерувати application.properties
? Які плюси / мінуси у кожного з них?
Відповіді:
Ну, це просто різні формати даних. Хто приємніший і легший для читання? Це очевидно суб’єктивно. Ось корисна публікація в блозі.
Що стосується spring-boot
конфігурації, зверніть увагу, що існує лише один задокументований недолік використання YAML
. Відповідно до документації :
Файли YAML не можна завантажити за допомогою
@PropertySource
анотації. Отже, якщо вам потрібно завантажити значення таким чином, вам потрібно використовувати файл властивостей.
application.yaml
так і application.properties
? чи можу я просто перенести речі, скажімо, .yaml
у .properties
(змінюючи формат за необхідності) і очікувати, що речі продовжуватимуть працювати так само?
Приємне запитання, я теж одразу переплутався з цим.
Доходить до того, що, наскільки я знаю, є деякі відмінності,
1.) .properties файл: Він зберігає дані у послідовному форматі. Файл .yml: Він зберігає дані в ієрархічному форматі.
2.) .properties файл: Він підтримує лише пару ключ-значення, в основному рядкові значення. Файл .yml: Він підтримує пару ключ-значення, а також значення типу map, list & skalar.
3.) .properties файл: Цей файл спеціально використовується для JAVA. Файл .yml: цей тип файлу використовується багатьма мовами, такими як JAVA, Python, ROR тощо.
4.) Якщо ви хочете обробляти кілька профілів, файл .properties: У цьому випадку вам потрібно керувати окремим файлом для кожного профілю. Файл .yml: У цьому типі файлу вам просто потрібно керувати одним файлом і розміщувати в ньому дані конфігурації конкретного профілю.
5.) Для проекту
Spring файл .properties: @PropertySource
анотація підтримує цей тип файлу.
Файл .yml: анотація @PropertySource не може підтримувати цей тип файлу.
В даний час я просто знаю лише про це !!!
.properties file
: може підтримувати пару ключ-значення, а також значення типу map, list & skalar. + пункт # 3 .properties file
можна використовувати з будь-якою мовою
Помітною відмінністю є те, як властивості представлені в кожному файлі. Файли YAML можуть використовувати послідовні пробіли для позначення ієрархії, тоді як файл властивостей може використовувати = для позначення значень властивостей.
Для екс.
Списки представлені ієрархічно в YAML:
заголовки:
- user-agent
- x-wag-diagonalsize
Списки можуть бути представлені як вбудований список (розділений комами) у файлі властивостей:
заголовки = user-agent, x-wag-diagonalsize
Інша відмінність полягає в тому, що ми можемо додати кілька файлів конфігурації в один файл yaml.
Наприклад, ми можемо додати application.yaml (властивості програми) та bootstrap.yaml (властивості сервера) в один файл config.yaml