代码

Controller层

@Path("/hello")
public class HelloController extends Controller {@InjectUserService userService;public void index() {User user=userService.findById(1);renderJson(user);}

Service层

public class UserService {private User dao=new User().dao();public User findById(int id){return dao.findById(id);}public void deleteById(int id){dao.deleteById(id);}
}

访问接口:http://localhost/hello

错误信息:空指针异常

3月 24, 2021 8:23:48 下午 com.jfinal.core.ActionHandler error
严重: demo.HelloController.index() : /hello
java.lang.NullPointerExceptionat demo.HelloController.index(HelloController.java:12)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:566)at com.jfinal.aop.Invocation.invoke(Invocation.java:97)at com.jfinal.core.ActionHandler.handle(ActionHandler.java:88)at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:90)at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

错误分析:idea开启调试模式进行调试,依赖注入service类为空,通过经验判断应该是service类没有交给框架容器管理,例如springboot项目中需要为service类添加@Service注解,声明此类为组件并交给容器管理。

解决方案:在Jfinal配置类中的常量配置方法中设置依赖注入为true

    @Overridepublic void configConstant(Constants me) {/*** 支持 Controller、Interceptor、Validator 之中使用 @Inject 注入业务层,并且自动实现 AOP* 注入动作支持任意深度并自动处理循环注入*/me.setInjectDependency(true);// 配置对超类中的属性进行注入me.setInjectSuperClass(true);}

结果:运行成功,查出数据

Jfinal-Controller层注入Service空指针异常相关推荐

  1. SpringBoot框架分层(View层、Controller层、Service层、Mapper层、pojo层)

    SpringBoot框架一般分为View层.Controller层.Service层.Mapper层.pojo层. View层:视图层,根据接到的数据展示页面给用户 Controller层:响应用户需 ...

  2. 为什么Controller层注入的是Service接口,而不是ServiceImpl实现类

    错误代码: Service层接口interface PCI{} 接口实现类@Serviceclass PCIImpt imeplements PCI{}Controller层@Autowiredpri ...

  3. SpringBoot—单元测试模板(controller层和service层)

    关注微信公众号:CodingTechWork,一起学习进步. 介绍 概述   在开发过程中,我们经常会一股脑的写各种业务逻辑,经常等全部大功告成的时候,打个jar包放环境里跑跑看看能不能通,殊不知在各 ...

  4. Dao层,Mapper层,controller层,service层,model层都有什么作用

    原文链接 SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层. 存放我们的实体类,与数据库中的属性值 ...

  5. SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层都有什么作用

    SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层.存放我们的实体类,与数据库中的属性值基本保持一致 ...

  6. 对SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层等层的理解

    SSM 是 Spring + SpringMVC + Mybatis集成的框架. MVC即model view controller.(模型,视图,控制器) 一.entity层(model层,doma ...

  7. Controller层和Service层具体区分

    controller层,主要用于给前端返回数据的以及接收前端的数据的, service层,总之就是处理数据用的. 处理controller层传过来的数据然后传给给dao层链接数据库进行增删改查, 从d ...

  8. controller层,service层,mapper层,entity层的作用与联系。

    一. controller层 controller层是用来接受前台数据和返回页面请求信息的,Controller层是不允许直接操作数据库的!它就像一个服务员,哪桌客人需要点菜了,就喊一声服务员! 对应 ...

  9. service层中注入conroller_springMVC中controller层调用service层的方式

    springmvc 中普通类调用注解service层 的方式除了 1.自动注入外: @Autowired UserService userService; 2.还可以这样: 工具类: /** * * ...

最新文章

  1. IDEA模块(module)的概念和使用_对比Eclipse
  2. 线性表--链式实现方式
  3. 手把手带你学习如何在小程序、网页前端部署AI模型
  4. linux tar压缩权限,LINUX 文件/组/帮助/权限/文件压缩/管道
  5. wikioi 1430 素数判定
  6. 数据挖掘如何计算相关性_一份数据挖掘入门指南!!!
  7. [论文翻译]Sequence to Sequence Learning with Neural Networks
  8. 使用HP优盘启动盘格式化工具制作DOS7.1启动盘,U盘.SD.TF卡均可用
  9. Android系统生成jks签名
  10. 华为m6平板电脑Linux,华为平板M6 10.8英寸版使用体验及全面评测
  11. 基于ROS的仿人机器人运动规划与实现
  12. 句法分析 依存句法分析
  13. u盘服务器安装win7系统安装教程视频教程,小白U盘安装win7系统教程
  14. 肯德基中国门店将限时发售植物肉汉堡
  15. 第十届泰迪杯数据挖掘B题:电力系统负荷预测分析--解题思路与部分代码03
  16. conda 配置R虚拟环境并安装 monocle 包
  17. java 手机动态口令_动态密码TOTP的Java实现
  18. 【SSL 1458】zzzyyds(DP)
  19. 【Verilog 设计】Verilog 实现偶数、奇数分频和任意小数分频
  20. pythonnamedtuple定义类型_python namedtuple的使用

热门文章

  1. FS4064 SOP8 两节8.4V线性锂电池充电IC
  2. elasticsearch 安装配置
  3. 恶补FPGA知识——亚稳态
  4. linux系统安装软件报错,Linux安装软件时报错解决方法
  5. Webpack——ES6转ES5
  6. 计算机、网络安全、CTF资源总结-The_Growth_Path_Of_A_Pwner(一名安全从业者的成长之路)
  7. CAS 密码盐值加密
  8. java Map的基本用法
  9. opencv--GrabCut
  10. 研华板卡cvi例程_研华amp;NI LabVIEW编程对比与驱动互换视频