У нас была аналогичная ситуация, когда нам нужно было иметь несколько версий одного и того же приложения, работающих параллельно. Решение, которое мы использовали для этого, заключалось в том, чтобы упаковать файл свойства вместе со сборкой и не иметь динамический элемент (основанный на среде). Например, в этом случае мы создаем httpdemo.usa.properties и упаковываем его вместе с приложением. Это было довольно легко для нас, поскольку мы используем Jenkins для управления нашими сборками и выпусками. Когда сборка выпущена, мы ссылаемся на конфигурационный файл от Jenkins, который содержит все специфические свойства «страны». Вы даже можете передать эту страну в качестве параметра в определение сборки. Используя настраиваемый плагин maven, мы заменяем файл свойств в приложении новыми свойствами из файла свойств Jenkins.
Другим решением вашей проблемы может быть соблюдение соглашения об именах для ваших приложений, специфичных для страны, которую вы хотите использовать, и получения свойств с использованием весенних бобах. Например,
<spring:beans>
<spring:bean id="CountryProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<spring:property name="singleton" value="true"/>
<spring:property name="location" value="${app.name}.properties"/>
</spring:bean>
</spring:beans>
<http:listener-config name="HTTP_Listener_Configuration" host="localhost" port="5000" doc:name="HTTP Listener Configuration"/>
<flow name="dynamic_propsFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/test" doc:name="HTTP"/>
<logger message="#[app.registry.CountryProperties['country.full.name']]" level="INFO" doc:name="Logger"/>
</flow>
Мои свойства, как показано ниже:
File - dynamic_props_usa.properties
population=10
country.full.name=united.states.of.america
File - dynamic_props_mexico.properties
population=100
country.full.name=mexico
$ {app.name} дает имя приложения, которое развертывается. Если мое приложение называется dynamic_props_usa, оно ссылается на dynamic_props_usa.properties. Если это так, dynamic_props_mexico, он ссылается на dynamic_props_mexico.properties. Надеюсь это поможет!
В примере вы дали или содержите слишком много цитат или слишком мало кавычек, если вы добавили их для StackOverflow. Пожалуйста, отредактируйте и исправьте его форматированием кода. – techraf