activiti流程引擎配置类
1.流程引擎配置类
流程引擎的配置类:ProcessEngineConfiguration
,通过ProcessEngineConfiguration
可以创建工作流引擎ProcessEngine
,常用的两种方法如下:
1.1StandaloneProcessEngineConfiguration
使用StandaloneProcessEngineConfigurationActiviti可以单独运行,来创建ProcessEngine,Activiti会自己处理事务。
配置文件方式:通常在activiti.cfg.xml
配置文件中定义一个id为processEngineConfiguration
的bean
如:
<bean id="processEngineConfiguration"class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"><!--配置数据库相关的信息--><!--数据库驱动--><property name="jdbcDriver" value="com.mysql.jdbc.Driver"/><!--数据库链接--><property name="jdbcUrl" value="jdbc:mysql:///activiti"/><!--数据库用户名--><property name="jdbcUsername" value="root"/><!--数据库密码--><property name="jdbcPassword" value="root"/><!--actviti数据库表在生成时的策略 true - 如果数据库中已经存在相应的表,那么直接使用,如果不存在,那么会创建--><property name="databaseSchemaUpdate" value="true"/></bean>
或者加入连接池的方式:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/contex/schema/context/spring-context.xsd/schema/tx/schema/tx/spring-tx.xsd"><bean id="dataSource" class="mons.dbcp.BasicDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/activiti"/><property name="username" value="root"/><property name="password" value="root"/><property name="maxActive" value="3"/><property name="maxIdle" value="1"/></bean><!--在默认方式下 bean的id 固定为 processEngineConfiguration--><bean id="processEngineConfiguration"class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"><!--引入上面配置好的 链接池--><property name="dataSource" ref="dataSource"/><!--actviti数据库表在生成时的策略 true - 如果数据库中已经存在相应的表,那么直接使用,如果不存在,那么会创建--><property name="databaseSchemaUpdate" value="true"/></bean></beans>
1.2.SpringProcessEngineConfiguration
通过org.activiti.spring.SpringProcessEngineConfiguration
与spring整合
创建spring与activiti的整合配置文件:
activiti-spring.cfg.xml(名字可更改)
<beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance" xmlns:mvc="/schema/mvc"xmlns:context="/schema/context"xmlns:aop="/schema/aop" xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-3.1.xsd /schema/mvc /schema/mvc/spring-mvc-3.1.xsd /schema/context /schema/context/spring-context-3.1.xsd /schema/aop /schema/aop/spring-aop-3.1.xsd /schema/tx /schema/tx/spring-tx-3.1.xsd "><!-- 工作流引擎配置bean --><bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"><!-- 数据源 --><property name="dataSource" ref="dataSource" /><!-- 使用spring事务管理器 --><property name="transactionManager" ref="transactionManager" /><!-- 数据库策略 --><property name="databaseSchemaUpdate" value="drop-create" /><!-- activiti的定时任务关闭 --><property name="jobExecutorActivate" value="false" /></bean><!-- 流程引擎 --><bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean"><property name="processEngineConfiguration" ref="processEngineConfiguration" /></bean><!-- 资源服务service --><bean id="repositoryService" factory-bean="processEngine"factory-method="getRepositoryService" /><!-- 流程运行service --><bean id="runtimeService" factory-bean="processEngine"factory-method="getRuntimeService" /><!-- 任务管理service --><bean id="taskService" factory-bean="processEngine"factory-method="getTaskService" /><!-- 历史管理service --><bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService" /><!-- 用户管理service --><bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService" /><!-- 引擎管理service --><bean id="managementService" factory-bean="processEngine" factory-method="getManagementService" /><!-- 数据源 --><bean id="dataSource" class="mons.dbcp.BasicDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/activiti" /><property name="username" value="root" /><property name="password" value="mysql" /><property name="maxActive" value="3" /><property name="maxIdle" value="1" /></bean><!-- 事务管理器 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!-- 通知 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes></tx:attributes><!-- 传播行为 --><tx:method name="save*" propagation="REQUIRED" /><tx:method name="insert*" propagation="REQUIRED" /><tx:method name="delete*" propagation="REQUIRED" /><tx:method name="update*" propagation="REQUIRED" /><tx:method name="find*" propagation="SUPPORTS" read-only="true" /><tx:method name="get*" propagation="SUPPORTS" read-only="true" /></tx:attributes></tx:advice><!-- 切面,根据具体项目修改切点配置 --><aop:config proxy-target-class="true"><aop:advisor advice-ref="txAdvice" pointcut="execution(* com.itheima.ihrm.service.impl.*.(..))"* /></aop:config></beans>
2.创建processEngineConfiguration
方法一:要求activiti.cfg.xml中必须有一个processEngineConfiguration的bean
ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml")
方法二:可以更改bean名称
ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(String resource, String beanName);
3.创建工作流引擎processEngine
工作流引擎:ProcessEngine
,相当于一个门面接口,通过ProcessEngineConfiguration
创建ProcessEngine
,然后通过ProcessEngine
来创建各个service接口
3.1默认创建方式
在固定的路径resource
下创建配置文件activiti.cfg.xml
,xml文件有processEngineConfiguration的配置,然后使用下面的代码创建processEngine:
//直接使用工具类 ProcessEngines,使用classpath下的activiti.cfg.xml中的配置创建processEngineProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();System.out.println(processEngine);
3.2一般创建方式
//先构建ProcessEngineConfigurationProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");//通过ProcessEngineConfiguration创建ProcessEngine,此时会创建数据库ProcessEngine processEngine = configuration.buildProcessEngine();
4.Service服务接口
Service是工作流引擎提供用于进行工作流部署、执行、管理的服务接口,使用这些服务类就可以操作服务对应的数据表
4.1Service创建方式
通过ProcessEngine
创建Service
RuntimeService runtimeService = processEngine.getRuntimeService();RepositoryService repositoryService = processEngine.getRepositoryService();TaskService taskService = processEngine.getTaskService();
4.2Service总览
如果觉得《【activiti】activiti流程引擎配置类》对你有帮助,请点赞、收藏,并留下你的观点哦!