Какой эквивалентный атрибут можно использовать в файле конфигурации spring для аннотации @Qualifier?

Аннотация @Autowired в Spring эквивалентна "autowiring="byName/byType/constructor"" в файле конфигурации spring. Точно так же, каков эквивалентный атрибут для аннотации @Qualifier, чтобы избежать двусмысленности по типу ??


person Nirmal    schedule 28.05.2017    source источник


Ответы (2)


Добрый день,

@Qualifier("nameOfBean")

В каждом бине одного типа нужно использовать аннотацию @Component. Например:

@Component("customerService")
public class CustomerService{
@Autowired
public CustomerService(@Qualifier("jdbcCustomerRepository") CustomerRepository customerRepository)

Если есть 2 реализации customerRepository, вам нужно определить с помощью @Component или любой аннотации стереотипа.

@Component("jdbcCustomerRepository")
public class JdbcCustomerRepository implements CustomerRepository

@Component("jpaCustomerRepository")
public class JpaCustomerRepository implements CustomerRepository
person Francisco Palos    schedule 28.05.2017
comment
Спасибо за ваш ответ @Francisco. Мой плохой, если вопрос не ясен. Уточню точнее. Есть ли какой-либо эквивалентный атрибут bean-компонента, который можно использовать в файле конфигурации Spring .xml, чтобы избежать двусмысленности, вместо использования Qualifier или любой другой аннотации? Можно ли это сделать в самом файле конфигурации .xml? - person Nirmal; 28.05.2017

@Qualifier("nameOfBean") предназначен для автоматического связывания bean-компонентов по имени, поэтому в XML просто выполните инъекцию по имени

person Snowy    schedule 28.05.2017