Аннотация @Autowired в Spring эквивалентна "autowiring="byName/byType/constructor"" в файле конфигурации spring. Точно так же, каков эквивалентный атрибут для аннотации @Qualifier, чтобы избежать двусмысленности по типу ??
Какой эквивалентный атрибут можно использовать в файле конфигурации spring для аннотации @Qualifier?
Ответы (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
Спасибо за ваш ответ @Francisco. Мой плохой, если вопрос не ясен. Уточню точнее. Есть ли какой-либо эквивалентный атрибут bean-компонента, который можно использовать в файле конфигурации Spring .xml, чтобы избежать двусмысленности, вместо использования Qualifier или любой другой аннотации? Можно ли это сделать в самом файле конфигурации .xml?
- person Nirmal; 28.05.2017
@Qualifier("nameOfBean")
предназначен для автоматического связывания bean-компонентов по имени, поэтому в XML просто выполните инъекцию по имени
person
Snowy
schedule
28.05.2017