@PostConstruct 注解导致的空指针异常

@PostConstruct 注解导致的空指针异常

@PostConstruct 用途是执行在依赖注入完成之后的操作。

比如:类A注入了类B。在初始化类A时,根据类的执行顺序要先执行类A的构造方法,再执行注入。所以,构造方法中就无法使用类B。而被@PostConstruct注解的方法,在类A初始化的过程中,注入完类B后再执行。

参考:https://blog.csdn.net/u014515854/article/details/78832790

 

而在使用@PostConstruct一定要注意spring的加载类的顺序:

举一个例子:

 

 

如果spring先加载App,再加载PostConstructT。即使使用了注入,但是public Object app = PostConstructT.arrayList.get(0)会等于注入执行。就会产生空指针异常。

 

结论:

Java变量的初始化顺序为:

父类静态变量或静态语句块–>子类静态变量或静态语句块->父类实例变量或初始化语句块–>父类构造方法->子类实例变量或初始化语句块->子类构造方法->@AutoWired->@PostConstruct

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值