当我们需要在类的构造方法里面里面获得需要注入的对象时:
/*@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变量的初始化顺序为:静态变量或静态语句块–>实例变量或初始化语句块–>构造方法