activiti工作流的监听类调用spring中的been
来源:互联网 发布:亚马逊aws 知乎 编辑:程序博客网 时间:2024/06/10 18:25
在我们使用activiti监听类的时候有时需要调用spring中的been,但是你会发现如果在监听类中直接引入been会报null指针异常。如下:
public class QsbgEndLintener implements ExecutionListener{ private static final long serialVersionUID = 1L; @Autowired private QsbgService qsbgService; @Override public void notify(DelegateExecution arg0) throws Exception { String piId = arg0.getProcessInstanceId(); Qsbg qsbg = new Qsbg(); qsbg.setProcessInstanceId(piId); qsbg.setSfbl("2"); //设置办结 qsbgService.updateByPiId(qsbg); }}
原因是QsbgEndLintener 类是在activiti中直接new的,所以注入QsbgService 必然是空。
这里有种方法就是spring提供的一种方法可以让外面的程序调用spring的been及实现ApplicationContextAware类。
1、实现ApplicationContextAware拿到applicationContext获取been
public class SpringUtil implements ApplicationContextAware { /** * 当前IOC * */ private static ApplicationContext applicationContext; /** * * 设置当前上下文环境,此方法由spring自动装配 * */ @Override public void setApplicationContext(ApplicationContext arg0) throws BeansException { applicationContext = arg0; } /** * 从当前IOC获取bean * * @param id * bean的id * @return * */ public static Object getObject(String id) { Object object = null; object = applicationContext.getBean(id); return object; } }
2、在spring.xml中配置been
<bean id="springUtil" class="com.train.util.SpringUtil"/><bean id="qsbgListenerServer" class="com.train.service.oa.QsbgService"></bean>
3、在activiti监听类中调用qsbgListenerServer
public class QsbgEndLintener implements ExecutionListener{ private static final long serialVersionUID = 1L; @Override public void notify(DelegateExecution arg0) throws Exception { QsbgService qsbgService = (QsbgService)SpringUtil.getObject("qsbgListenerServer"); String piId = arg0.getProcessInstanceId(); Qsbg qsbg = new Qsbg(); qsbg.setProcessInstanceId(piId); qsbg.setSfbl("2"); //设置办结 qsbgService.updateByPiId(qsbg); }}
阅读全文
0 0
- activiti工作流的监听类调用spring中的been
- Activiti工作流的监听类调用spring中的been
- activiti工作流中的常见问题
- activiti监听类加载不了spring
- [ Activiti ] Spring 整合Activiti工作流开发
- activiti工作流与spring整合
- Spring Boot集成Activiti工作流
- Spring Boot集成Activiti工作流
- Activiti框架的工作流
- activiti工作流的使用
- 工作流Activiti的学习总结- 整合spring mvc
- 工作流Activiti和Spring的整合配置讲解
- Activiti工作流操作类
- Activiti工作流学习 Activiti工作流与spring集成
- 工作流Activiti的学习总结(四)Spring和Activiti的整合配置讲解
- 工作流Activiti的学习总结(一)Spring和Activiti的整合配置讲解
- 工作流Activiti的学习总结(四)Spring和Activiti的整合配置讲解
- 工作流Activiti的学习总结(四)Spring和Activiti的整合配置讲解
- QSqlDriver.hasFeature(QSqlDriver::Transactions) false
- ASP.NET应用程序与页面生命周期
- mac中在命令行用sublime打开文件
- find: ‘/run/user/1000/gvfs’: Permission denied解决办法
- VBA word中插入文字和艺术字
- activiti工作流的监听类调用spring中的been
- Vuejs v-for中利用index来对第一项添加class
- JSP内置对象的一些总结
- xcode 项目瘦身神器
- 计算最高逾期、当前逾期、累计逾期
- 快速排序
- MYSQL免安装版无法启动终极解决方法
- Java : Basic
- 使用Rxjava完成倒计时遇到的问题及处理