Загрузка util:properties с профилем Spring вызывает несколько вхождений идентификатора

Я использую профили Spring (3.1) для загрузки файлов свойств с помощью утилиты: свойства:

<beans profile="local">
    <util:properties id="myProps"  
                     location="classpath:local.properties" />
</beans>
<beans profile="dev">
    <util:properties id="myProps"  
                     location="classpath:dev.properties" />
</beans>

И я вызываю профиль через параметр времени выполнения (работает на сервере TC): -Dspring.profiles.active=local

Но получаю ошибку There are multiple occurrences of ID value 'myProps'

Ранее это выполнялось с другими определениями bean-компонентов, но после добавления util:properties я получаю сообщение об ошибке.


person enkor    schedule 06.12.2013    source источник
comment
Где вы получаете ошибку?   -  person axtavt    schedule 06.12.2013
comment
При запуске веб-приложения, пока Spring загружает его контекст и подключает bean-компоненты.   -  person enkor    schedule 06.12.2013
comment
Дважды проверьте, что нет 3-го компонента с этим идентификатором.   -  person Ralph    schedule 06.12.2013
comment
Если я использую один компонент в одном профиле, он работает.   -  person enkor    schedule 06.12.2013
comment
Я думаю, вы активируете оба профиля одновременно. Возможно, они складываются, если, например, вы активируете другой с помощью ctx.getEnvironment().setActiveProfiles(standalone, activemq); или в файле web.xml. Проверь это.   -  person Evgeni Dimitrov    schedule 08.01.2014


Ответы (1)


Убедитесь, что ваши объявления xsd используют версии >= 3.1 для пространств имен beans и util:

xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/util 
    http://www.springframework.org/schema/util/spring-util-3.1.xsd  ">

Скорее всего, причиной ошибки будет то, что вы забудете установить для объявления util значение 3.1, если, как вы говорите, это работает для других bean-компонентов, но не для тех, которые объявлены с использованием util.

person Stephen Hartley    schedule 07.10.2015
comment
О, джингс, я спрашивал об этом много лет назад и сменил работу. Я никак не могу подтвердить правильность этого ответа. - person enkor; 09.10.2015
comment
Нет проблем, надеюсь, это будет полезно для других, столкнувшихся с этой проблемой. - person Stephen Hartley; 12.10.2015
comment
Я только что столкнулся с той же проблемой и могу подтвердить, что ответ @StephenHartley решает эту проблему. - person otto.poellath; 19.11.2015