首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Activiti 5.19.0 核心配置入門指南(一):引擎構建、數據庫、表結構

     編輯:Java 綜合教學

Activiti 5.19.0 核心配置入門指南(一):引擎構建、數據庫、表結構

運行前提

  • JDK 6+,Eclipse Kepler+
  • 標注 EXPERIMENTAL 的功能不穩定,生產慎用
  • 參考 Activiti Explorer 專案了解完整功能

核心配置文件:activiti.cfg.xml

默認加載類路徑下 activiti.cfg.xml,根元素 <beans>,核心 Bean id="processEngineConfiguration"。

四種 ProcessEngineConfiguration 實現

類名適用場景
StandaloneProcessEngineConfiguration獨立模式,Activiti 自管事務,啟動時檢測數據庫
StandaloneInMemProcessEngineConfiguration測試專用,H2 內存庫,啟動建表關閉刪表
SpringProcessEngineConfigurationSpring 整合模式(最常用)
JtaProcessEngineConfiguration分布式事務(JTA)環境

數據庫配置兩種方式

方式一:內置連接池(僅測試)

<property name="jdbcUrl" value="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000"/>
<property name="jdbcDriver" value="org.h2.Driver"/>
<property name="jdbcUsername" value="sa"/>
<property name="jdbcPassword" value=""/>

方式二:外部 DataSource(生產必用,推薦 DBCP/C3P0/Druid)

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/activiti"/>
    <property name="username" value="activiti"/>
    <property name="password" value="activiti"/>
    <property name="defaultAutoCommit" value="false"/>
</bean>

<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
    <property name="dataSource" ref="dataSource"/>
    ...
</bean>

關鍵數據庫屬性

  • databaseType:通常自動檢測,支持 h2/mysql/oracle/postgres/mssql/db2
  • databaseSchemaUpdate:true(啟動自動建表/更新)、false、create-drop

引擎啟動方式

// 從默認資源加載
ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault().buildProcessEngine();

// 指定資源/Bean 名
ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml", "myConfig").buildProcessEngine();

// 零配置(不推薦生產)
ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration()
    .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE)
    .setJdbcUrl("jdbc:h2:mem:my-db;DB_CLOSE_DELAY=1000")
    .setAsyncExecutorEnabled(true)
    .buildProcessEngine();

數據庫表創建與分類

運行 DbSchemaCreate 或手動執行 SQL(JAR 包 org/activiti/db/create 下)。

三大類表(生產常只需 engine + history):

  • ACT_RE_*:Repository(流程定義、資源)— 必需
  • ACT_RU_*:Runtime(執行實例、任務、變量)— 必需,運行時數據,結束自動清理
  • ACT_ID_*:Identity(用戶、組)— 可選,自帶用戶管理時使用
  • ACT_HI_*:History(歷史實例、變量、任務)— 推薦啟用
  • ACT_GE_*:General(通用數據)
MySQL 5.5~5.6.3 避坑:timestamp/datetime 無毫秒精度,建表會報錯。解決:升級 ≥5.6.4 或使用 5.5 版本 SQL 腳本。

零配置觀點

雖支持代碼式配置,但生產強烈建議 XML 外部化:便於運維修改、權限隔離、版本管理、非開發人員可維護。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved