美文网首页JavaWeb 知识点
activiti学习笔记(十六)流程引擎配置

activiti学习笔记(十六)流程引擎配置

作者: 云师兄 | 来源:发表于2018-08-31 22:20 被阅读49次

    流程引擎类的配置

    流程引擎配置类的作用

    流程引擎配置xml

    流程引擎配置xml

    流程引擎配置类及其子类

    ProcessEngineConfiguration是一个抽象类,他的实现类在idea中可以使用control+H的快捷键获取到:


    屏幕快照 2018-09-22 上午11.31.20.png

    创建流程引擎配置对象

    创建流程引擎配置对象

    数据库配置

    屏幕快照 2018-09-22 上午11.44.01.png 屏幕快照 2018-09-22 上午11.45.47.png 屏幕快照 2018-09-22 上午11.47.08.png 屏幕快照 2018-09-22 上午11.49.04.png 屏幕快照 2018-09-22 上午11.49.41.png

    示例

    如果我们使用了默认的H2数据库,那么创建流程引擎方式为:

    ProcessEngineConfiguration cfg = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();
            ProcessEngine processEngine = cfg.buildProcessEngine();
            String name = processEngine.getName();
    

    其中创建方法实现如下:

    public static ProcessEngineConfiguration createStandaloneInMemProcessEngineConfiguration() {
        return new StandaloneInMemProcessEngineConfiguration();
      }
    public StandaloneInMemProcessEngineConfiguration() {
        this.databaseSchemaUpdate = DB_SCHEMA_UPDATE_CREATE_DROP;
        this.jdbcUrl = "jdbc:h2:mem:activiti";
      }
    

    从实现中可以看出这个方法的确是使用H2数据库实现持久化的,另外this.databaseSchemaUpdate = DB_SCHEMA_UPDATE_CREATE_DROP;这句设置表示相关表结构在流程引擎创建时自动建立,结束时自动销毁。当然这种方式并不适合于生产情况,而使用于单元测试中。

    当然创建流程引擎的方法有很多种,查看流程引擎配置类源码如下:


    屏幕快照 2018-09-22 下午12.35.13.png

    如果我们使用

    createProcessEngineConfigurationFromResource(String resource, String beanName)
    

    需要传入配置xml名称和配置类名,默认配置文件在/src/main/source/目录下,比如此处建立一个activiti-cfg.xml文件,并且内部配置的bean名称为processEngineConfiguration,实现如下:

    <?xml version="1.0" encoding="UTF-8"?>  
    <beans xmlns="http://www.springframework.org/schema/beans"  
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
           xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd">  
      <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">  
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/db_activiti" />  
        <property name="jdbcDriver" value="com.mysql.jdbc.Driver" />  
        <property name="jdbcUsername" value="root" />  
        <property name="jdbcPassword" value="123456" />  
        <property name="databaseSchemaUpdate" value="true" />  
      </bean>  
    </beans>  
    

    使用配置文件的优点就在于可以直观的配置我们想要的数据库连接和各种相关配置。

    上述示例配置使用的是默认的mybatis数据库连接池,如果想使用其他的连接池,只需要修改配置如下:

     <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <property name="dataSource"  ref=”dataSource” />
    </bean>
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"   destroy-method="close">  
        <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="********" />  
    </bean>  
    

    这样就可以在dataSource在这个连接池配置中配置连接数等信息了。
    添加了activiti.cfg.xml文件后,就可以使用如下的方式实例化流程引擎配置类了:

    ProcessEngineConfiguration cfg = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
    

    相关文章

      网友评论

        本文标题:activiti学习笔记(十六)流程引擎配置

        本文链接:https://www.haomeiwen.com/subject/ufoewftx.html