Мне нужно 2 bean-компонента сопоставления конечных точек с одинаковым идентификатором

скажем, в моем приложении есть функция, которую можно включить или отключить:

  • если отключено, Spring bean-компоненты (включая сопоставления конечных точек) будут загружены из main.xml
  • если включено, компоненты Spring (включая сопоставления конечных точек) будут загружаться из main.xml и extra.xml.

Проблема в том, что у моего сопоставления конечных точек есть идентификатор «mynamespaceEndpointMapping». Этот компонент имеет тип org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping.

Как определить этот компонент таким образом, чтобы при загрузке из main.xml у него была только одна конечная точка, а при загрузке из extra.xml — 10 конечных точек? (Я не хочу, чтобы все 10 конечных точек были определены в main.xml, если они мне там не нужны) Я мог бы использовать наследование bean-компонентов, но это нарушит соглашение об именовании пространств имен, поскольку мне, вероятно, понадобятся разные идентификаторы для bean-компонентов...

Спасибо, Тео


person Sandman    schedule 19.11.2013    source источник


Ответы (1)


Вам нужно переопределить spring bean. Как в этом ответе: основной компонент Spring

Но это возможно только с конфигурацией XML, а не с аннотациями.

РЕДАКТИРОВАТЬ: я имел в виду принятый ответ. Но я проверил это с моим собственным кодом.

У меня есть 2 удостоверения личности. В test1.xml

<bean id="test" class="Test1" />

и в test2.xml

<bean id="test" class="Test2" />

Во время запуска используются оба «test1.xml», «test2.xml» (в таком порядке) в ApplicationContext en, когда я получаю bean-компонент Spring test, он относится к классу Test2.

person MystyxMac    schedule 19.11.2013
comment
Да, но в этом фрагменте кода компоненты имеют разные идентификаторы. Разве мне не нужен тот же идентификатор, чтобы правильно квалифицировать его как сопоставление конечной точки? - person Sandman; 19.11.2013
comment
Это действительно решение, хотя я надеялся на что-то, что не будет зависеть от порядка. - person Sandman; 20.11.2013