在学习activiti中难免会做一些小demo,来测试activiti中各种组件,下面介绍junit,spring,activiti项目搭建并附上代码。这是maven项目
这是我的项目结构:
版本
<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.SpringJUnit4ClassRunner; import java.util.List; @RunWith( SpringJUnit4ClassRunner.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> <!– <entry key="TASK_ASSIGNED"> <bean class="com.raymon.trms.activiti.listener.TaskAssignmentListener"/> </entry>–> <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>