项目场景:
做项目时,为了快速的测试功能,没有选择动用数据库,而是自己初始化了数据
问题描述:
项目启动时报错Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError
原因分析:
1、检查配置,反反复复看了很多遍,确认没有问题。
2、 网上找了很多资料,类似的问题很多,看过答案以后依旧不得其要领。只好继续看报错代码,直到看到这一句:
好家伙,空指针,然后根据空指针行数找到了空值所在
Spring在实例化这个类的时候,先执行静态块,再加载autowire注解,所以此时我的对象里是没有值的,此时某个类还未实例化(检查是否已加注解),故而报了这个空指针错误。
解决方案:
如果保留注解,那么去掉对象的static,用死数据初始化对象值(测试数据而已,怎么方便怎么来)
运行成功,bug解决。
经验教训:
1、仔细看报错信息。
2、每次修改过代码以后,都要记得进行测试,确保修改是正确的。