2014-11-21 2 views
1

Весной, если есть два боб идентификаторов, которые относятся к тому же классу, и мы просто хотим, чтобы ввести значения только из одного боба, то мы обычно используем следующие аннотации в сочетании:Какова альтернатива использования аннотации Квалификатора в XML весной?

@Autowired 
@Qualifier("bean1") 

Как достичь то же самое, используя спецификацию xml? Какова альтернатива использования аннотации классификатора в xml?

ответ

1

Не совсем точная альтернатива, но вы можете использовать autowire-candidate="false" для всех этих компонентов, которые вы хотите исключить из автоустройства, кроме того, который должен быть автоуведомлен.

Также вам нужно указать конкретный компонент, который подходит для автоустройства, явно обозначив для него primary="true" и primary="false" для остальных.

Так грубо конфигурация XML должна выглядеть, как показано ниже, когда вы ожидаете bean1 быть autowired
<bean id="bean1" class="x.y.z.ClassA" primary="true" autowire-candidate="true"/> <bean id="bean2" class="x.y.z.ClassA" primary="false" autowire-candidate="false"/> <bean id="bean3" class="x.y.z.ClassA" primary="false" autowire-candidate="false"/>

Обратите внимание, что оба autowire-candidate и primary являются свойствами для beans тега и имеют значение по умолчанию, как true.

Смежные вопросы