Activiti(一)创建表

众所周知,Activiti作为Java中的高级框架,Activiti 是一个针对企业用户、开发人员 、系统管理员的轻量级工作流业务管理平台,其核心是使用 java 开发的快速 、 稳定的 BPMN2.0 流程引擎 。它可以与 spring 完美集成。


现在开始我们进入Activiti的学习


 

第一步:我们在数据库创建表activiti,表中不需要有任何的数据

create database activiti


第二步:创建一个Maven项目,这里就不做演示了


第三步:配置文件activiti.cfg.xml

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

    <!--数据源配置-->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/activiti?serverTimezone=UTC" />
        <property name="username" value="root" />
        <property name="password" value="010126" />
    </bean>

    <!--activiti单独运行的ProcessEngine配置对象(processEngineConfiguration)
      默认情况下:bean的id=processEngineConfiguration
      要改变bean的名称,部署时需要在代码中添加bean的id:例子:processEngineConfiguration01
        ProcessEngineConfiguration processEngineConfiguration=ProcessEngineConfiguration       .createProcessEngineConfigurationFromResource("activiti.cfg.xml","processEngineConfiguration01");
  -->
    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <!--数据源-->
        <property name="dataSource" ref="dataSource"></property>

    
        <!--是否生成表结构-->
        <property name="databaseSchemaUpdate" value="true"/>
    </bean>


</beans>

创建类ActivitiDeploymenTest,从表创建的角度看,有两种方式

第一种方式:

 public void testGenTableOne(){
        //创建ProcessEngine对象
        ProcessEngine processEngine= ProcessEngines.getDefaultProcessEngine();
        System.out.println(processEngine);
    }

第二种方式:

 public void testGenTableTwo(){
        //1:创建ProcessEngineConfiguration对象
        //第一个参数:配置文件名称  第二个参数是processEngineConfiguration的bean的id
        ProcessEngineConfiguration processEngineConfiguration=
                ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
       //2:创建ProcessEngine对象
        ProcessEngine processEngine=processEngineConfiguration.buildProcessEngine();

        //3;输出ProcessEnine对象
        System.out.println(processEngine);
    }

部署分析:

以上两种方式都是可以的,但是相较于第二种方式,第一种的条件会比较多

第一种方式的条件:

  1. 项目中activiti配置文件名称:activiti.cfg.xml
  2. activiti.cfg.xml配置bean的id必须是"processEngineConfiguration",并且不可改变

第二种方式需要注意:

 <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">

由于bean的id默认时processEngineConfiguration,如果需要改变成processEngineConfiguration01那么需要添加bean的id

ProcessEngineConfiguration processEngineConfiguration=
   ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml","processEngineConfiguration01");

运行后结果:




私人建议:

两种方法都有各自的优缺点,第一种方式比较局限性,第二种方式代码多一些,activiti的很多功能实现都是需要获取ProcessEngine对象,所以建议可以做一个工具封装,需要用到的时候调用即可

public class ReturnProcessEngineUtil {

    //Id未改变
    public static ProcessEngine getProcessEngine(){
        ProcessEngineConfiguration processEngineConfiguration=ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
        ProcessEngine processEngine=processEngineConfiguration.buildProcessEngine();
        return processEngine;
    }
    //Id改变
    public static ProcessEngine getProcessEngine(String beanName){
        ProcessEngineConfiguration processEngineConfiguration=ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml",beanName);
        ProcessEngine processEngine=processEngineConfiguration.buildProcessEngine();
        return processEngine;
    }
}

调用

 ProcessEngine processEngine= ReturnProcessEngineUtil.getProcessEngine();


原创文章,未经允许禁止盗用



猜你喜欢

转载自blog.csdn.net/weixin_44519467/article/details/106379178