1、@Autowried与接口搭配使用,注入的是接口实现类
2、接口有多个实现类的情况
//接口UserInterface,有多个实现类AImpl,BImpl...
@Autowired
@Qualifier("AImpl")
private UserInterface aImpl;
//或者
@Resource(name="AImpl")
private UserInterface aImpl;
3、@Autowried直接注入实现类报错
面向接口编程思想,spring代理了实现类。
4、@Autowried搭配有参构造方法
/**
此方法为有参构造函数
UserService 是接口,有UseServiceImpl1,UseServiceImpl2,UseServiceImpl3三种实现类
此处的@Autowired注入的是UserService 的实现类,且三种实现类均被注入
*/
@Autowired
public UserController(List<UserService> userServiceList) {
//....
}