/ / Поддържане на множество файлове с свойства в приложението Spring Boot - java, spring-boot, свойства

Поддържане на множество файлове със свойства в приложението Spring Boot - java, spring-boot, свойства

Имам приложение за пролетно зареждане и то има множество файлове с имоти, по един за всяка локална среда, dev, test, performance, production.

Неотдавна имахме инцидент, в който някой забрави да постави нов имот във файла с производствените имоти и системата не работи с часове в производството.

Въпросът ми е, има ли някакви по-добри практики за това как да се поддържат свойствата в множество файлове с имоти?

В момента мисля за полезност, може би за единичен тест, който проверява всеки ключ съществува във всеки файл със свойство и той няма да успее да построи, ако тя не съществува.

Направих няколко търсения, но не можах да намерямного. Разбирам термините на въпроса и че искам мнението тук. Повече търся да науча по-добрите практики за поддържане на файлове с имоти.

Отговори:

3 за отговор № 1

Трябва да използвате различни файлове с свойства за различни среди

application-qa.properties за QA среда

заявка- собственост за производствена среда

application-local.properties за местна среда

След това използвайте няколко скрипта, за да стартирате приложението за различни среди, както и всеки скрипт

mvn spring-boot: изпълнете -Drun.profiles = qa

mvn spring-boot: изпълнете -Drun.profiles = prod

mvn spring-boot: изпълнете -Drun.profiles = local

Например application-local.properties файла е:

spring.profiles.active = местно

spring.data.mongodb.host = Localhost

spring.data.mongodb.port = 27017

spring.data.mongodb.database = my_db_name

spring.data.mongodb.username = some_user_name

spring.data.mongodb.password = some_password

spring.rabbitmq.host = Localhost

spring.rabbitmq.username = гост

spring.rabbitmq.password = гост

spring.rabbitmq.port = 5672

rabbitmq.publish = вярно


1 за отговор № 2

Да, тази стандартна практика следваотделни свойства зависими от околната среда и да ги инжектират, използвайки spring.profile.active, но описаният от вас сценарий изглежда по-скоро човешка грешка и може да се случи с която и да е програма, може да има тест за проверка на свойствата, но въвежда въпрос за поддръжка. Предпочитам да управлявам свързаните с производството свойства с помощта на конфигурацията от пролетен облак (тук) защото производствените свойства могат да съдържат идентификационни данни за db и секретни ключове, които могат да бъдат изтеглени.


1 за отговор № 3

Можете да използвате файл със свойства по подразбиране. Ако няма свойство в конкретен конкретен файл на env, тогава той ще погледне в този файл със свойства.

когато е възможно, докато разрешавате свойството през пролетта, опитайте се да предоставите стойност по подразбиране. За напр. @Value ( "$ {mongodb.url: 127.0.0.1}")