java inovationtargetexception nu

2017-08-25  本文已影响0人  wangzaiplus

异常信息:inovationtargetexception nullpointerexception

很奇怪的现象,当我使用spring注解注入service时,调用serviceimpl方法,debug都进不去方法,直接抛出inovationtargetexception nullpointerexception异常,自己传递的参数username,password等等明明有值不为空,怎么可能空指针,百思不得姐,,,

registerService.doRegister(username, password),刚开始一直围绕着doRegister方法,想到底哪里null,其他方法调用此方法没有一点问题,所以可以排除doRegister方法内部问题,那么,既然方法没问题,为什么不想一下调用者的问题呢,于是,测试:

if(registerService == null){
    log.info("registerService为空");
    return false;
}

控制台:registerService为空,果然,是spring注入registerService出现问题,根本没有注入成功,也就导致空指针问题了,也就导致反射调用空对象inovationtargetexception 异常了,所以,排查注入出现的问题

原来,我的WxAuthServiceImpl和QQAuthServiceImpl都实现了AuthService接口,然后注入的时候直接写成了:@Autowired AuthService authService,然后调用authService.dosomething...方法spring当然不知道该调用哪一个实现类的方法,所以报错,所以,解决办法:

总结:看了很多网上的问题和解决办法,再结合自己的,很有可能就是spring注入的问题,没有注入进去,导致异常

题外话:至于网上很多原因及解决办法,我想说的是,其实解决办法很多都可行,只不过只适用于他们那种特定的场景,所以有效,但是落实到咱每个人,遇到的错误不一样,异常类似,具体的解决办法肯定不一样,这时,不应该照搬,而应该想一下出现这种异常的原因可能是什么,然后再结合别人的解决方案进行调试,一步一步找到问题和解决办法,这样才能提升

另外,debug调试非常重要,非常重要,非常重要,咱程序员一定要掌握其用法!

上一篇下一篇

猜你喜欢

热点阅读