解决Activiti在注入service失败的原因
在昨天的项目中我们可能会遇到这个问题 下面代码中的Service的值是null,这是为什么呢import cn.itsource.crm.service.ICustomerService;@Component //组件 可以把这放到spring容器中publicclass CustomerTaskListenerimplements TaskListener{@Au...
·
在昨天的项目中我们可能会遇到这个问题
下面代码中的Service的值是null,这是为什么呢
import cn.itsource.crm.service.ICustomerService;
@Component //组件 可以把这放到spring容器中
public class CustomerTaskListener implements TaskListener{
@Autowired
ICustomerService customerService;//
@Override
public void notify(DelegateTask delegateTask) {
System.out.println(customerService);
// 上一个任务指定人是谁 当前登录人-超级管理员
String user =delegateTask.getVariable("user",String.class);
// 设置下一个任务指定人 user 数据库查找的领导
String assignee="超级管理员";
delegateTask.setAssignee(assignee);
// 设置当前人
delegateTask.setVariable("user", assignee);
}
}
这就要了解一下spring的底层原理了,SpringIOC/AOP,Spring容器框架中会有Controller,service,Repository,Component这四个空间,当要注入哪一个层的实体类的时候,就会去哪一层找,这样提高了效率,找到了就把对象注给你,没找到就报错,同时他也是一个懒加载对象,只会new一次,在注入这个service的时候是Activiti帮我们创建的不是spring给我们创建的所有就会有null值
Spring注入原理
解决方式就是不让Activiti帮我们创建,把我们的对象交给Spring来管理,在Activiti设置我们注入的实体类
喜欢的朋友点个赞把!!!!!!!!
更多推荐
已为社区贡献1条内容
所有评论(0)