@Autowired注解,是byType和byName的结合。
@Autowired注解可以写在:
- 属性上:先根据属性类型去找Bean,如果找到多个再根据属性名确定一个
@Autowired
private MailService mailService2;
- 构造方法上:先根据方法参数类型去找Bean,如果找到多个再根据参数名确定一个
@Autowired
public UserService(MailService mailService33) {
this.mailService2 = mailService33;
}
- set方法上:先根据方法参数类型去找Bean,如果找到多个再根据参数名确定一个
@Autowired
public void setMailService2(MailService mailService33) {
this.mailService2 = mailService33;
}
@Qualifier作用
@Qualifier作用是在自动按照类型注入的基础上,再按照bean的ID注入,在给类成员注入时,它不能够独立使用,需要配合@Autowired来使用,其中value属性用于指定bean的ID。
@Autowired
@Qualifier("mailService33")
private MailService mailService;