Иногда может возникнуть необходимость использовать несколько разных бинов для чтения конфигурации из properties, но если просто объявить их несколько штук, то работать ничего не будет - вылетит эксепшн типа "Could not resolve placeholder 'xxx.yyy". Чтобы все нормально заработало, необходимо переопределить префикс и суффикс, которые используются для обращения к подгруженным properties - ${xxx.yyy} (выделено красным). Это делается для каждого добавленного
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer бина (для того, что имеет по умолчанию name="propertyConfigurer" не надо), причем все они должны быть уникальны. Это делается так:
<bean id="propertyAnotherConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:another.properties</value>
</list>
</property>
<property name="placeholderPrefix" value="#{"/>
<property name="placeholderSuffix" value="}"/>
</bean>
Теперь нужно использовать соответствующие префиксы и суффиксы при обращении к значениям, загруженным в каждый бин и все будет работать.
1 комментарий:
Спасибо!
Два часа пытался понять, почему же у меня другой конфиг не подхватывается!
Отправить комментарий