spring管理Bean的生命周期时,在构造函数中直接调用本类的方法,实例化bean失败

例如:

class A {
    A() {
        loadResouse();
    }
    public / private void loadResouse() {
        todoSth.
    }
}

 

 

报错 beancreationexception ...... constructor threw exception nullpointException......

 

 

但是用init-method 就可以,,为什么?  

 

 

 

 

错误信息已经告诉你了,空指针异常。在构造函数里调用哪里出错了。

spring的加载bean步骤
先创建对象,在注入属性,然后执行init方法
你在创建对象的时候调用某个方法,而该对象的属性还没有注入,如果你这个方法里面用到要注入的属性就会报错
可以将需要的属性配置到构造方法里面或者就是配置init方法