当我们需要在类的构造方法里面里面获得需要注入的对象时:

/*@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变量的初始化顺序为:静态变量或静态语句块–>实例变量或初始化语句块–>构造方法