当我们需要在类的构造方法里面里面获得需要注入的对象时:
/*@Resource
private Observer<TaxiObserverVo> taxiPushObserver;
@Resource
private Observer<TaxiObserverVo> taxiFlowObserver;
public Pay () {
super();
addObserver(taxiFlowObserver);
addObserver(taxiPushObserver);
}*/
@Autowired
public Pay (Observer<TaxiObserverVo> taxiPushObserver,Observer<TaxiObserverVo> taxiFlowObserver) {
addObserver(taxiFlowObserver);
addObserver(taxiPushObserver);
}
可以在构造方法上使用@Autowire
若不添加会报错,因为
因为Java类会先执行构造方法,然后再给注解了@Autowired
的user注入值,所以在执行构造方法的时候,就会报错。
Java变量的初始化顺序为:静态变量或静态语句块–>实例变量或初始化语句块–>构造方法