Пара вариантов:
Системные переменные
Вы можете использовать префикс для управления специфическими для среды свойствами, это можно сделать с помощью системных переменных:
<util:properties id="googleProperties"
location="WEB-INF/${ENV_SYSTEM:dev}/google.properties" />
В этом случае он всегда будет выглядеть под:
<util:properties id="googleProperties"
location="WEB-INF/dev/google.properties" />
по умолчанию , если не установлена системная переменная ENV_SYSTEM
. Например, если он установлен на qa
, он автоматически будет выглядеть под:
<util:properties id="googleProperties"
location="WEB-INF/qa/google.properties" />
пружинные профили
Другой подход - сделать профиль бобов специфичным. Например:
<beans profile="dev">
<util:properties id="googleProperties"
location="WEB-INF/google-dev.properties" />
</beans>
<beans profile="qa">
<util:properties id="googleProperties"
location="WEB-INF/google-qa.properties" />
</beans>
Соответствующий googleProperties
будет загружен в зависимости от набора профилей. Например, это загрузит WEB-INF/google-dev.properties
:
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
ctx.getEnvironment().setActiveProfiles( "dev" );
ctx.load( "classpath:/org/boom/bang/config/xml/*-config.xml" );
ctx.refresh();