package com.mossle.bpm.behavior.usertask; import com.mossle.bpm.behavior.ProcessEngineBeanFactory; import org.activiti.engine.impl.bpmn.behavior.MultiInstanceActivityBehavior; import org.activiti.engine.impl.bpmn.behavior.UserTaskActivityBehavior; import org.activiti.engine.impl.pvm.delegate.ActivityExecution; import org.activiti.engine.impl.task.TaskDefinition; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.jdbc.core.JdbcTemplate; public class CustomUserTaskActivityBehavior extends UserTaskActivityBehavior { private static Logger log = LoggerFactory .getLogger(CustomUserTaskActivityBehavior.class); private JdbcTemplate jdbcTemplate; // 只是一个通过activiti引擎获取spring对象的例子 public CustomUserTaskActivityBehavior(TaskDefinition taskDefinition) { super(taskDefinition); jdbcTemplate = ProcessEngineBeanFactory.getBean("jdbcTemplate"); } public void setMultiInstanceActivityBehavior( MultiInstanceActivityBehavior multiInstanceActivityBehavior) { // TODO Auto-generated method stub log.info("MultiInstance usertask -- {}", multiInstanceActivityBehavior); super.setMultiInstanceActivityBehavior(multiInstanceActivityBehavior); log.info("jdbcTemplate : {}", jdbcTemplate); } public void execute(ActivityExecution execution) throws Exception { log.info("{}:{} begin execute", execution.getCurrentActivityId(), execution.getCurrentActivityName()); super.execute(execution); log.info("{}:{} after execute", execution.getCurrentActivityId(), execution.getCurrentActivityName()); } // 自定义行为可以监控到各个元素的各种行为, 只需要覆盖相应方法即可 }