activiti(7):监听器之流程监听及spring注入

本文详细介绍了在Spring环境下,如何使用Activiti的三种监听器:普通JavaBean、ExecutionListener接口和JavaDelegate接口。通过javaClass、expression和delegate expression配置实现监听,并进行测试,包括Spring容器注入bean的实践,展示了不同方式的监听器配置和测试结果。
摘要由CSDN通过智能技术生成

这篇文章主要记录流程监听器的部分用法,整个环境实在集成在spring下,ssm环境:

三个监听器:

A:普通javaBean:

package com.abc.activiti.listenner;


import org.activiti.engine.delegate.DelegateExecution;


public class JavaExpressionActivitiListenner {


	public void expression(DelegateExecution execution) throws Exception {
		System.out.println("executionId:" + execution.getId() + " ActivitiListenner" + this.toString());
	}
}


B:实现ExecutionListener接口:

package com.abc.activiti.listenner;


import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.ExecutionListener;
import org.activiti.engine.delegate.TaskListener;


public class ActivitiListenner implements TaskListener, ExecutionListener {


	/**
	 * 
	 */
	private static final long serialVersionUID = -3759054058055401826L;


	@Override
	public void notify(DelegateExecution execution) throws Exception {
		System.out.println("xml流程:" + execution.getId() + " ActivitiListenner" + this.toString());
	}


	@Override
	public void notify(DelegateTask delegateTask) {
		System.out.println("xml任务:" + delegateTask.getId() + " ActivitiListenner" + this.toString());
	}


}


C:实现JavaDelegate接口

package com.abc.activiti.listenner;


import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.JavaDelegate;


public class JavaDelegateActivitiListenner implements JavaDelegate {


	@Override
	public void execute(DelegateExecution execution) throws Exception {
		System.out.println("executionId:" + execution.getId() + " ActivitiListenner" + this.toString());
	}


}


第一种尝试:javaClass配置实现监听

流程设计:



流程非常短:启动-办理-结束,并配置了三个监听器

监听器配置:

	<process id="abc" name="流程监听注入" isExecutable="true">
		<extensionElements>
			<activiti:executionListener event="start"
				class="com.abc.activiti.listenner.xxxListenner"></activiti:executionListener>
			<activiti:executionListener event="end"
				class="com.abc.activiti.listenner.xxxListenner"></activiti:executionListener>
		</extensionElements>
		<startEvent id="startevent1" name="Start"></startEvent>
		<userTask id="usertask1" name="User Task"></userTask>
		<sequenceFlow id="flow1" sourceRef="startevent1"
			targetRef="usertask1"></sequenceFlow>
		<endEvent id="endevent1" name="End"></endEvent>
		<sequenceFlow id="flow2" sourceRef="usertask1" targetRef="endevent1">
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值