快速搭建activiti spring junit测试,用起来超级方便

在学习activiti中难免会做一些小demo,来测试activiti中各种组件,下面介绍junit,spring,activiti项目搭建并附上代码。这是maven项目
这是我的项目结构:
快速搭建activiti spring junit测试,用起来超级方便

版本

 <activiti-version>5.22.0</activiti-version>
    <spring.version>4.1.5.RELEASE</spring.version>

ActivitiTest 代码

import org.activiti.engine.*;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.activiti.spring.ProcessEngineFactoryBean;
import org.activiti.spring.impl.test.SpringActivitiTestCase;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.junit.Test;
import org.springframework.test.context.junit4.SpringJUnit4Cla***unner;

import java.util.List;
@RunWith( SpringJUnit4Cla***unner.class)
@ContextConfiguration("classpath:spring-activity.xml")
public class ActivitiTest extends SpringActivitiTestCase {
    private static Logger logger = LoggerFactory.getLogger(ActivitiTest.class);
   @Autowired
    RuntimeService runtimeService;

    @Autowired
    protected TaskService taskService;
    @Autowired
    protected HistoryService historyService;
    @Autowired
    protected RepositoryService repositoryService;
    @Autowired
    private IdentityService identityService;
    @Autowired
    private ProcessEngineFactoryBean processEngine;
    @Autowired
    private FormService formService;
    @Test
    public void  testlist(){

        List<Task> list = taskService.createTaskQuery().taskAssignee("zl").list();
        for(Task task:list){
            logger.info("sss"+ task.getName());
        }


    }

    @Test
    public void  startProcessInstanceByKey(){
        ProcessInstance processInstance =  runtimeService.startProcessInstanceByKey("bb");
        logger.info("sss"+ processInstance.getProcessInstanceId());

    }
}


spring-activity.xml代码

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
       http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.1.xsd
         http://www.springframework.org/schema/mvc
		http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd ">

    <!--  <context:component-scan
              base-package="org.activiti.conf,org.activiti.rest.editor">
          <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
      </context:component-scan>-->

    <bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
        <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="TRMS"/>
        <property name="password" value="TRMS"/>
    </bean>
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>


    <!-- 单例json对象 -->
    <bean id="objectMapper" class="com.fasterxml.jackson.databind.ObjectMapper"/>

    <!--
        <bean id="idGenerator" class="com.raymon.trms.activiti.persistence.SequenceIdGeneratorFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <property name="sequenceName" value="TRMS_ACTIVITI_ID"/>
        </bean>-->
    <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
        <property name="dataSource" ref="dataSource"/>
        <property name="transactionManager" ref="transactionManager"/>
        <property name="databaseSchemaUpdate" value="true"/>
        <property name="jobExecutorActivate" value="false"/>
        <property name="history" value="full"/>
        <property name="processDefinitionCacheLimit" value="10"/>

        <!-- 生成流程图的字体 -->
        <property name="activityFontName" value="宋体"/>
        <property name="labelFontName" value="宋体"/>
        <property name="annotationFontName" value="宋体"/>
        <!-- 自动部署 -->
        <property name="deploymentResources">
            <list>
                <value>classpath*:/diagrams/*</value>
            </list>
        </property>
        <!--  <property name="idGenerator" ref="idGenerator"/>-->
        <property name="eventListeners">
            <list>
                <!--  <ref bean="globalEventListener"/>-->
            </list>
        </property>
        <property name="customFormTypes">
            <bean class="org.activiti.engine.impl.form.DateFormType">
                <constructor-arg value="yyyy-MM-dd HH:mm:ss"/>
            </bean>
        </property>
    </bean>

    <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
        <property name="processEngineConfiguration" ref="processEngineConfiguration"/>
    </bean>

    <bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService"/>
    <bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService"/>
    <bean id="formService" factory-bean="processEngine" factory-method="getFormService"/>
    <bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService"/>
    <bean id="taskService" factory-bean="processEngine" factory-method="getTaskService"/>
    <bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService"/>
    <bean id="managementService" factory-bean="processEngine" factory-method="getManagementService"/>

    <!--流程全局事件处理器-->
    <!-- <bean id="globalEventListener" class="com.raymon.trms.activiti.listener.GlobalEventListener">
         <property name="handlers">
             <map>
                 <entry key="TASK_CREATED">
                     <bean class="com.raymon.trms.activiti.listener.TaskCreateListener"/>
                 </entry>
                   <entry key="TASK_COMPLETED">
                     <bean class="com.raymon.trms.activiti.listener.TaskCompleteListener"/>
                 </entry>
                        &lt;!&ndash;       <entry key="TASK_ASSIGNED">
                     <bean class="com.raymon.trms.activiti.listener.TaskAssignmentListener"/>
                 </entry>&ndash;&gt;
                 <entry key="PROCESS_STARTED">
                     <bean class="com.raymon.trms.activiti.listener.ProcessListener">
                         <property name="activitiEventType" value="PROCESS_STARTED"/>
                      </bean>
                 </entry>
                 <entry key="PROCESS_COMPLETED">
                     <bean class="com.raymon.trms.activiti.listener.ProcessListener">
                         <property name="activitiEventType" value="PROCESS_COMPLETED"/>
                     </bean>
                 </entry>
             </map>
         </property>
     </bean>-->

</beans>

pom.xml代码

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.activiti.examples</groupId>
  <artifactId>processtest</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>BPMN 2.0 with Activiti - Examples</name>
  <properties>
    <activiti-version>5.22.0</activiti-version>
    <spring.version>4.1.5.RELEASE</spring.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.activiti</groupId>
      <artifactId>activiti-engine</artifactId>
      <version>${activiti-version}</version>
    </dependency>
    <dependency>
      <groupId>org.activiti</groupId>
      <artifactId>activiti-spring</artifactId>
      <version>${activiti-version}</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-all</artifactId>
      <version>2.4.3</version>
    </dependency>
    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
      <version>1.3.168</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.6</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-jdk14</artifactId>
      <version>1.7.6</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
    </dependency>
    <dependency>
      <groupId>com.oracle</groupId>
      <artifactId>ojdbc14</artifactId>
      <version>10.2.0.5.0</version>
    </dependency>
    <!-- SPRING start -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-expression</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- SPRING end -->
  </dependencies>
	 <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
	       <version>2.3.2</version>
        <configuration>
	         <source>1.6</source>
	         <target>1.6</target>
	       </configuration>
	     </plugin>
	     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-eclipse-plugin</artifactId>
        <inherited>true</inherited>
        <configuration>
	         <classpathContainers>
	           <classpathContainer>org.eclipse.jdt.USER_LIBRARY/Activiti Designer Extensions</classpathContainer>
	         </classpathContainers>
	       </configuration>
	     </plugin>
    </plugins>
	 </build>
</project>

上一篇:idea2020.3 安装 使用 Activiti BPMN visualizer


下一篇:Activiti工作流Day02-Activiti配置