工作流Activiti的学习总结(四)Spring和Activiti的整合配置讲解

2024-04-10

工作流Activiti的学习总结(四)Spring和Activiti的整合配置讲解(共1篇)

篇1:工作流Activiti的学习总结(四)Spring和Activiti的整合配置讲解

工作流Activiti的学习总结

(四)Spring和Activiti的整合配置讲解

Spring和Activiti的整合:

在Spring和Activiti的整合中ProcessEngineFactoryBean成为了两者的整合点。ProcessEngineFactoryBean为org.activiti.spring.ProcessEngineFactoryBean。提供了ProcessEngine的配置和创建的功能。

id=“processEngineConfiguration”class=“org.activiti.spring.SpringProcessEngineConfiguration”>

...

name=“processEngineConfiguration”ref=“processEngineConfiguration”/>

如果在包含事物的activiti配置如下:

xmlns:context=“http:///schema/context”

xmlns:tx=“http:///schema/tx”

xmlns:xsi=“http:///2001/XMLSchema-instance”

xsi:schemaLocation=“http:///schema/beans http:///schema/beans/spring-beans.xsd

http:///schema/context

http:///schema/context/spring-context-2.5.xsd http:///schema/tx

http:///schema/tx/spring-tx-3.0.xsd”>

id=“dataSource”class=“org.springframework.jdbc.datasource.SimpleDriverDataSource”>

id=“transactionManager”class=“org.springframework.jdbc.datasource.DataSourceTransactionManager”>

id=“processEngineConfiguration”class=“org.activiti.spring.SpringProcessEngineConfiguration”>

name=“processEngineConfiguration”ref=“processEngineConfiguration”/>

id=“repositoryService”factory-bean=“processEngine”factory-method=“getRepositoryService”/>

id=“runtimeService”factory-bean=“processEngine”factory-method=“getRuntimeService”/>

id=“taskService”factory-bean=“processEngine”factory-method=“getTaskService”/>

id=“historyService”factory-bean=“processEngine”factory-method=“getHistoryService”/>

id=“managementService”factory-bean=“processEngine”factory-method=“getManagementService”/>

id=“IdentityService”factory-bean=“processEngine”factory-method=“getIdentityService”/>

...工作流中Expressions的使用

在使用spring的SpringProcessEngineConfiguration时,如果没有beans属性表示所有bean都可以暴露给activiti的流程文件xml访问。如果配置beans但是没有配置map中bean信息,则没有暴露的bean。如果map中配置部分bean表示只是暴露部分bean给activiti使用。

id=“processEngineConfiguration”class=“org.activiti.spring.SpringProcessEngineConfiguration”>

...

暴露的bean可以在activiti的流程xml中使用。如下调用bean的方法

public class Printer {

public void printMessage(){

System.out.println(“hello world”);

}

}

自动资源部署(Automatic resource deploy)

id=“processEngineConfiguration”class=“org.activiti.spring.SpringProcessEngineConfiguration”>

...name=“deploymentResources”value=“classpath*:/org/activiti/spring/test/autodeployment/autodeploy.*.bpmn20.xml”/>

name=“processEngineConfiguration”ref=“processEngineConfiguration”/>

Spring和activit的整合测试

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(“classpath:org/activiti/spring/test/junit4/springTypicalUsageTest-context.xml”)

public class MyBusinessProcessTest {

@Autowired

private RuntimeService runtimeService;

@Autowired

private TaskService taskService;

@Autowired

@Rule

public ActivitiRule activitiSpringRule;

@Test

@Deployment

public void simpleProcessTest(){

runtimeService.startProcessInstanceByKey(“simpleProcess”);

Task task = taskService.createTaskQuery().singleResult();

assertEquals(“My Task”, task.getName());

taskService.complete(task.getId());

assertEquals(0, runtimeService.createProcessInstanceQuery().count());}

}

当在spring的配置中配置ActivitiRule时候,测试bean将自动被注入:

< /bean>

上一篇:漠河导游词:导游如何介绍景点下一篇:游历华夏的说课稿