Я пытаюсь использовать свойство-заполнитель для загрузки некоторых файлов свойств, и я хочу указать имя одного из файлов, используя системное свойство, чтобы я мог загружать разные файлы в зависимости от среды, в которой находится мое приложение. работает в.
Сначала я попробовал следующее:
<context:property-placeholder location="classpath:environment_common.properties,classpath:environment_${app_env}.properties" />
Я проверил, что системное свойство (app_env) установлено правильно (например, "bar"), но Spring загружает неправильный файл (например, environment_foo.properties).
Я пытался использовать SpEL следующим образом:
<context:property-placeholder
location="#{ 'classpath:environment_common.properties,classpath:environment_'.concat(systemProperties['app_env'] }.properties) }" />
Но похоже, что context:property-placeholder
не поддерживает SpEL:
java.io.FileNotFoundException: Could not open ServletContext resource [/#{'classpath:environment_common.properties]
Похоже, что context:property-placeholder
имеет собственный синтаксический анализатор, который ищет запятые для разграничения нескольких файлов свойств, но не сначала передает значение в SpEL для его оценки.
Как мне использовать context:property-placeholder
, или я должен просто обойти его и использовать PropertyPlaceHolderConfigurer
напрямую?