activiti5.20简单介绍(十) -- spring和业务关联

来源:互联网 发布:淘宝商品链接怎么做 编辑:程序博客网 时间:2024/05/21 09:37

Activiti天生支持spring,所以与spring的集成是非常方便的。

1.依赖

 

<!-- spring-activiti集成 --><dependency>            <groupId>org.activiti</groupId>            <artifactId>activiti-spring</artifactId>            <version>${activiti.version}</version>        </dependency>

Activiti与spring集成需要依赖activiti-spring的包

2.配置

Spring集成的核心配置类:org.activiti.spring.SpringProcessEngineConfiguration

 

<!-- spring配置 --><bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">数据源配置<property name="dataSource" ref="dataSource"></property>数据库连接信息<property name="jdbcDriver" value="com.mysql.jdbc.Driver"></property><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"></property><property name="jdbcUsername" value="root"></property><property name="jdbcPassword" value="root123"></property>自动创建表<property name="databaseSchemaUpdate" value="true"></property>关闭JobExecutor的自动启动<property name="jobExecutorActivate" value="false"></property>配置自定义缓存<property name="processDefinitionCache"><bean class="com.vclouds.workflow.cache.MyCache" /></property></bean>

其他的配置与之前类似

 

3.创建引擎

spring集成就需要使用spring来讲引擎创建出来。

 

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

 

4.事务管理

spring集成之后就必须使用事务管理,即必须配置事务,否则会出现数据无法提交的情况

 

<bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean>

 

5.创建服务

利用工厂的方式创建各个服务类对象

 

利用工厂方式得到服务类对象<bean id="repositoryService" factory-bean="processEngine"factory-method="getRepositoryService" /><bean id="runtimeService" factory-bean="processEngine"factory-method="getRuntimeService" /><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" />

 

6.业务信息依托流程

业务信息需要通过流程进行一系列的操作,业务的一些信息需要在流程的运行过程中不断变动,不断更新,如果当前业务在流程中没有更新操作,那么这个业务信息就是一成不变的,就不是一个完整的业务信息,需要脱离流程进行操作,所以使用到流程的话需要将业务信息关联到流程。

7.流程关联业务信息

流程关联业务可以使用流程变量,在当前流程运行过程中,流程变量都可以获取,也就是在当前流程过程中,业务数据始终跟随,这样在做一些更新业务信息的操作就非常方便了。

当然,activiti也提供了一个关联业务的字段,在流程执行对象表中的BusinessKey列,使用这个字段,可以自定义规则将所需要的业务信息存放到当前字段,可以通过当前字段获得业务信息,也可以通过业务信息得到当前字段的值;

例如:Business类是业务类,其中id为主键,那么就可以将当前字段设置为Business:id,其中Business为当前业务类的simpleName,中间使用:分隔,id为业务主键,这样得到业务字段值的时候就可以查找业务信息,同时也可以通过字段值查询流程信息。

0 0
原创粉丝点击