1. 程式人生 > >Activiti整合到springMVC專案的詳細配置

Activiti整合到springMVC專案的詳細配置

注:本次教程全部在Activiti-5.16.4版本下測試通過
首先需要配置好springMVC的專案,這裡就不再贅述,(有時間也會寫一個springMVC簡單教程),即在springMVC原有專案上新增Activiti工作流配置。

一、新增所需jar包

從官網上下載對應的版本,在裡面找到Activiti所需jar包,這裡我添加了Activiti提供的11個jar,分別為:

activiti-bpmn-converter-5.16.4.jar
activiti-bpmn-layout-5.16.4.jar
activiti-bpmn-model-5.16.4.jar
activiti-common
-rest-5.16.4.jar activiti-engine-5.16.4.jar activiti-image-generator-5.16.4.jar activiti-json-converter-5.16.4.jar activiti-process-validation-5.16.4.jar activiti-rest-5.16.4.jar activiti-simple-workflow-5.16.4.jar activiti-spring-5.16.4.jar

同時也需要如下5個jar包,

mybatis-3.2.5.jar
slf4j-api-1.7.6.jar
slf4j-log4j12-1.7
.6.jar commons-lang3-3.3.2.jar joda-time-2.1.jar

全部拷貝到WEB-INF/lib目錄下即可。

二、新增spring配置資訊

在WEB-INF/applicationContext.xml配置檔案中,新增如下程式碼:

<!-- spring負責建立流程引擎的配置檔案 -->
    <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
           <!-- 資料來源 -->
<property name="dataSource" ref="dataSource2" /> <!-- 配置事務管理器,統一事務 --> <property name="transactionManager" ref="transactionManager" /> <!-- 設定建表策略,如果沒有表,自動建立表 --> <property name="databaseSchemaUpdate" value="true" /> <!-- 是否啟動jobExecutor --> <!-- <property name="jobExecutorActivate"value="false" /> --> </bean> <!-- 建立流程引擎物件 --> <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean"> <property name="processEngineConfiguration" ref="processEngineConfiguration" /> </bean> <!-- 建立activiti提供的各種服務 --> <!-- 工作流倉儲服務 --> <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" /> <bean id="formService" factory-bean="processEngine" factory-method="getFormService" /> <!-- 工作流唯一服務 --> <!-- <bean id="IdentityService"factory-bean="processEngine"factory-method="getIdentityService"/> -->

解釋:
其中dataSource2為activiti資料庫(將在第三步詳細介紹),建議單獨管理,這樣可以避免跟業務資料庫中資料產生衝突,也方便流程資料的管理,只需再定義一個新的資料來源即可,如下:

<bean id="dataSource2" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost:3306/activiti?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;zeroDateTimeBehavior=convertToNull&amp;transformedBitIsBoolean=true"></property>
        <property name="username" value="root"></property>
        <property name="password" value=""></property> 
    </bean>

其中transactionManager為spring統一事務管理,如果你使用的是Hibernate,定義如下:

<bean id="transactionManager"   class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"></property>
</bean>

如果使用的是spring-jpa,定義如下:

<bean id="transactionManager" 
class="org.springframework.orm.jpa.JpaTransactionManager">  
        <property name="entityManagerFactory" 
ref="entityManagerFactory" />  
</bean>

三、建立activiti資料庫

從官網下載並解壓的檔案中找到database檔案下的各類資料庫指令碼,這裡用的是mysql資料庫,所以把其中mysql的指令碼拷貝出來,新建一個mysql資料庫,名為activiti,分別執行

activiti.mysql.create.engine.sql
activiti.mysql.create.identity.sql
activiti.mysql.create.history.sql

這三個sql指令碼,它們分別建立了12張、4張、8張表,共24張表格,請核對是否全部建立成功。
注:可能是因為mysql版本或者其它原因,建立datetime格式的欄位時不能有長度定義,所以需要把上述三個sql指令碼中的datetime(3)改為datetime,另外把activiti.mysql.create.engine.sql中的CURRENT_TIMESTAMP(3)改為CURRENT_TIMESTAMP

四、單元測試

public static void main(String[] args) {
        // 1.建立Activiti配置物件的例項
        ProcessEngineConfiguration configuration = ProcessEngineConfiguration
                .createStandaloneProcessEngineConfiguration();
        // 2.設定資料庫連線資訊

        // 設定資料庫地址
        configuration
                .setJdbcUrl("jdbc:mysql://localhost:3306/activiti?createDatabaseIfNotExist&amp;useUnicode=true&amp;characterEncoding=utf8");
        // 資料庫驅動
        configuration.setJdbcDriver("com.mysql.jdbc.Driver");
        // 使用者名稱
        configuration.setJdbcUsername("root");
        // 密碼
        configuration.setJdbcPassword("");

        // 設定資料庫建表策略
        /**
         * DB_SCHEMA_UPDATE_TRUE:如果不存在表就建立表,存在就直接使用
         * DB_SCHEMA_UPDATE_FALSE:如果不存在表就丟擲異常
         * DB_SCHEMA_UPDATE_CREATE_DROP:每次都先刪除表,再建立新的表
         */
        configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);

        // 3.使用配置物件建立流程引擎例項(檢查資料庫連線等環境資訊是否正確)
        ProcessEngine processEngine = configuration.buildProcessEngine();

        System.out.println(processEngine);
    }

執行無異常即說明Activiti已整合到springMVC中。

相關推薦

SpringMVC整合Freemarker的詳細配置步驟

FreeMarker是一個用Java語言編寫的模板引擎,它基於模板來生成文字輸出。FreeMarker與Web容器無關,即在Web執行時,它並不知道Servlet或HTTP。它不僅可以用作表現層的實現技術,而且還可以用於生成XML,JSP或Java 等。 FreeMarke

建立SpringMVC專案配置檔案(配置式)

配置式(不使用註解):在springmvc的配置檔案中,使用標籤建立物件 步驟: 1.新建 web 專案 2.匯入jar包: 1)spring的核心jar:spring-beans.jar,spring-core.jar,spring-context.jar,s

JAVA實用操作(一)IDEA用maven建立springMVC專案配置

最近做使用者畫像需要使用API的方式訪問hbase表,這裡構建使用java web專案使用java語言進行API開發,這裡簡單回顧下java web的構建方式。 一.回顧建立SpringMVC Spring MVC 框架在 Java 的 Web 專案中應該是無人

SpringMVC專案配置xml時一些和名稱空間相關的問題,如mvc:annotation-driven的字首 "mvc"未繫結

Q1.元素 "mvc:annotation-driven" 的字首 "mvc"未繫結 辦法:在spring-servlet.xml檔案裡使用<mvc>開頭的標籤時,忘記引入了名稱空間。在xml的beans裡面加入如下程式碼即可 xmlns:mvc="http:

IDEA用maven建立springMVC專案配置(XML配置和Java配置

這段時間在學習javaweb的一些知識,然後接觸到了springmvc框架。框架的建立和配置一直是新手入門的一個難題,所以我就寫一下我的配置過程,以供參考,另外因為spring4的新特性可以用java來配置,網上相關資料較少,所以我參考了很多博文後,把xml和j

Activiti整合到spring中配置

1、匯入activiti相應的jar包 使用用maven,在pox.xml中配置 <dependency> <groupId>org.activiti</groupId>

IDEA用maven建立springMVC專案配置(XML配置和Java配置)(修正版)

這段時間在學習javaweb的一些知識,然後接觸到了springmvc框架。框架的建立和配置一直是新手入門的一個難題,所以我就寫一下我的配置過程,以供參考,另外因為spring4的新特性可以用java來配置,網上相關資料較少,所以我參考了很多博文後,把xml和java兩種配置方式都試了一下。  工具準備:

Step by Step 搭建SpringMVC專案[3]-配置SpringMVC環境

裝飾基礎專案 Web專案轉Maven專案       想要使用Maven管理我們的專案,就需要將我們的專案轉換一下。當然也可以直接下載jar包放到專案內。不過為了多學習一些就不要省事兒了。    右鍵專案--》Configurae--》Convert to Maven Pro

springboot 整合eureka 超詳細配置(轉載)

開發十年,就只剩下這套架構體系了! >>>   

Java Activiti(11)---整合springMVC專案詳細配置

一、新增所需jar包 從官網上下載對應的版本,在裡面找到Activiti所需jar包,這裡我添加了Activiti提供的11個jar,分別為: activiti-bpmn-converter-5.16.4.jar activiti-bpmn-layout-5

Activiti整合springMVC專案詳細配置

注:本次教程全部在Activiti-5.16.4版本下測試通過 首先需要配置好springMVC的專案,這裡就不再贅述,(有時間也會寫一個springMVC簡單教程),即在springMVC原有專案上新增Activiti工作流配置。 一、新增所需jar包

maven中spring+springmvc+mybatis整合詳細配置

首先配置mybatis,可以參考這篇部落格的前期基礎配置使用。 https://blog.csdn.net/qq_41520636/article/details/84146699 下面配置結構:  需要的jar,在pom.xml中引入 <!--統一j

springmvc 專案完整示例04 整合mybatis mybatis所需要的jar包 mybatis配置檔案 sql語句 mybatis應用

百度百科: MyBatis 本是apache的一個開源專案iBatis, 2010年這個專案由apache software foundation 遷移到了google code,並且改名為MyBatis 。2013年11月遷移到Github。 iBATIS一詞來源於“internet”和“abatis”

springmvc 專案完整示例06 日誌–log4j 引數詳細解析 log4j如何配置

Log4j由三個重要的元件構成: 日誌資訊的優先順序 日誌資訊的輸出目的地 日誌資訊的輸出格式 日誌資訊的優先順序從高到低有ERROR、WARN、 INFO、DEBUG,分別用來指定這條日誌資訊的重要程度; 日誌資訊的輸出目的地指定了日誌將列印到控制檯還是檔案中; 而輸出格式則控制了日誌資訊的顯

springmvc 專案完整示例05 日誌 --log4j整合 配置 log4j屬性設定 log4j 配置檔案 log4j應用

log4j 就是log for java嘛,老外都喜歡這樣子,比如那個I18n  ---internationalization  不就是i和n之間有18個字母... 直接入正題 他是一個強大的日止功能元件 想要用他,根把大象放到冰箱裡面一樣多 1,下載一個jar包,放到專案中去 2,搞一個配

springmvc 專案完整示例07 設定配置整合springmvc springmvc所需jar包springmvc web.xml檔案配置

前面主要是後臺程式碼,spring以及mybatis的整合 下面主要是springmvc用來處理請求轉發,展現層的處理 之前所有做到的,完成了後臺,業務層和持久層的開發完成了 接下來就是展現層了 有很多的mvc框架,這裡我們用springMVC 首先還是需要jar包 我們既然是web專案了

Activiti-5.18.0與springMvc專案整合activiti-explorer單獨部署Web專案並與業務資料庫關聯方法(AutoEE_V2實現方式)

Activiti-5.18.0與springMvc專案整合和 activiti-explorer單獨部署Web專案並與業務資料庫關聯方法 (AutoEE實現方式) Double_AutoEE 2015-10-15  AutoEE-自動智慧快速開發

SSM框架Spring+SpringMVC+MyBatis——詳細整合教程

servle aps files framework l數據庫 建立 blank onf pin 摘要: 包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的... 摘要:

spring boot整合mybatis深坑之c3p0的詳細配置

text context ati reat source ast type fig oot 項目地址:https://gitee.com/zhangjunqing/spring-boot/tree/master/springboot-mybatis-notice 本人在c3

IDEA整合日誌框架Log4j2+Slf4j詳細配置過程

info 信息 mon 文件路徑 留言 nbsp time 檢測 之間 日誌框架這麽多,他們之間到底是什麽關系呢?籠統的講就是slf4j是一系列的日誌接口,而log4j2、logback是具體實現了接口功能的日誌框架。現在的主流日誌接口都使用slf4j,而日誌的實現就見仁見