#java #spring #spring-batch
#java #весна #весенний замес
Вопрос:
У меня есть приложение spring bath, которое содержит пакетную конфигурацию. Я хочу динамически загружать профиль на основе параметра переменной environemnt из списка активных профилей. как только я получу значение, я должен установить переменную в XML-файле пакетной конфигурации. Он работает нормально, пока значение активного профиля равно одному, он работает нормально, если я даю лайк
<context:property-placeholder location="classpath:application-${spring.active.profile}.properties" />
Но у меня есть список активных профилей
, например: -Dspring.active.profile=dev,localproperties,mycerts. Я хочу взять первое значение активного профиля и загрузить файл свойств и загрузить application-dev.properties.
Я попробовал следующий способ, но получил всю строку целиком в качестве значения профиля. как я могу загрузить первое значение активного профиля /.
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<util:list>
<value>classpath:application-${spring.profiles.active}.properties</value>
</util:list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="true"/>
</bean>
Как я мог этого добиться?
Ответ №1:
у меня есть список активных профилей, например: -Dspring.active.profile=dev,localproperties,mycerts. Я хочу взять первое значение активного профиля
Для этого вы можете использовать выражение SpEL, что-то вроде:
<context:property-placeholder
location="classpath:application-#{environment.getActiveProfiles()[0]}.properties" />
Обратите внимание , что свойство является именованным spring.profiles.active
, а не spring.active.profile
нет .