首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
Service class类里用@Inject,报空指针异常
jfinal爱好者22
2020-07-29 16:09
在Service类中用Inject注解注入其他
Service类,报空指针异常
项目:
JFinal
评论区
JFinal
2020-07-29 16:12
在 controller 中使用下面的方式注入 NoticeService 才可以:
public class MyController extends Controller {
@Inject
NoticeService noticeService;
...
}
也就是说,注入需要有一个起点,这个起点可以是 Controller、Interceptor,也可以是这些起点的下一层
检查一下你的 NoticeService 是 new 出来的,还是用 @Inject 注入的
如果不能在起点进行注入,还可以通过 Aop.get(NoticeService.class) 进行注入
回复
jfinal爱好者22
2020-07-29 16:24
@JFinal
就是在controller里面,注入一下NoticeService就可以了是吧
回复
JFinal
2020-07-29 16:38
@jfinal爱好者22
使用 @Inject 注入,必须有一个起点是被 jfinal 接管的,三个主要的起点:
1:Controller
2:Interceptor
3:Aop.get(...)
这个就跟 spring 中使用依赖注入的时候,对象的创建是被 spring 接管的是一个道理,不能自己 new 出对象, new 出对象,意味着没有被框架接管,没被接管就没有注入的机会
回复
jfinal爱好者22
2020-07-29 17:09
@JFinal
明白了,谢谢
回复
JFinal
2020-07-29 17:16
@jfinal爱好者22
忘了一个重要的配置:
configConstant(Constants me) {
me.setInjectDependency(true);
}
以上配置开启注入功能,如果希望对父类进行注入,还需要添加一行配置:
me.setInjectSuperClass(true);
回复
jfinal爱好者22
2020-07-29 17:34
@JFinal
嗯嗯,好的
回复
永字诀
2020-07-30 10:00
@jfinal爱好者22
这里有套视频课程,对JFinal核心知识点进行了系统介绍,包括AOP的应用,可以考虑下 https://ke.qq.com/course/2839073?tuin=92419b8c
回复
发送
我要反馈
热门反馈
扫码入社
public class MyController extends Controller {
@Inject
NoticeService noticeService;
...
}
也就是说,注入需要有一个起点,这个起点可以是 Controller、Interceptor,也可以是这些起点的下一层
检查一下你的 NoticeService 是 new 出来的,还是用 @Inject 注入的
如果不能在起点进行注入,还可以通过 Aop.get(NoticeService.class) 进行注入