spring controller层引用service报空指针异常nullpointExceptio问题
调用controller报空指针有两种情况
- 1、 service 或者mapper 没有加载到spring容器中 ,引用时候肯定报空指针
- 2、 service加载到spring容器中了, 但是controller中定义的方法为private,私有方法被接口访问时候,因为private作用域的问题,无法获取该方法,报空指针
没有加载到spring容器中
1、controller层中的service没有注入,(@Resource @Autowired)
2、service层没有使用@Service修饰
3、Application启动类中,没有使用定义需要加载到容器中的包
该包中包含需要加载进去的各种bean ,使用@ComponentScan是指定需要加载的bean所在包,而@SpringbootApplication其实已经包含了该注解
4、 常见报空指针的场景是,用户自定义了Util下的类,然后使用@Service引用了定义的Service,但是报空指针。 这种是因为,该Util类,没有加载到Spring容器中,需要使用@Component注解 ,同时,这个util类需要使用@Resource引用到Spring容器中,这样该util类和service才会一同作用到Spring容器中。
controller层使用@RestController注释,在启动时候会因为@componentScan的原因,加载进容器中,总结一点,要使用该bean,该bean需加载进Spring容器中。
Controller类下的方法private私有了
这种是引用java 修饰符作用域的问题,private修饰的方法只能在该类中使用。
其实你使用Idea时候,在controller中定义private方法时候, 编辑器会显示
Idea已经告诉你,这种的话没有被引用,
而将方法public后:服务启动后, 该处会显示正常不会报灰色
插一句:idea是真的牛皮的编辑器
controller层引用service层报空指针问题
应用service层时
private Manager manager;
少加了@Autowired
添加后,空指针报错解决
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
window 下 win10 jdk8安装与环境变量的配置过程
这篇文章主要介绍了window 下 win10 jdk8安装与环境变量的配置,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-08-08基于java SSM springboot实现抗疫物质信息管理系统
这篇文章主要介绍了基于JAVA SSM springboot实现的抗疫物质信息管理系统,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-08-08解决RabbitMq消息队列Qos Prefetch消息堵塞问题
这篇文章主要为大家介绍了关于如何解决解决RabbitMq Qos Prefetch消息堵塞的问题分析,有需要的朋友可以借鉴参考下,希望能够有所帮助2022-01-01
最新评论