一、 前期准備
安裝必要的開發環境
eclipse/intellij+maven 3.5.x + tomcat 7/8/9+mysql 5.x
將sql目錄下面的5個SQL文件導入數據庫中
二、 程序實現
1. 項目結構
2. 主要配置
- 流程引擎的配置
在activiti.cfg.xml和spring-mybatis.xml配置文件中,主要配置了流程引擎,數據源(用於流程引擎自動生成與之相關的數據表)
<!--流程引擎配置-->
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="dataSource" ref="dataSource"/>
<property name="transactionManager" ref="transactionManager"/>
<property name="databaseSchemaUpdate" value="true"/>
</bean>
<bean id="dbProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties"/>
<property name="ignoreUnresolvablePlaceholders" value="true"/>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="defaultAutoCommit" value="false"/>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
2. spring與mybatis的整合
<!-- import jdbc.properties -->
<context:property-placeholder location="classpath:jdbc.properties" ignore-unresolvable="true" />
<!-- <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自動掃描mapping.xml文件 -->
<property name="mapperLocations" value="classpath:com/activiti/mapping/*.xml"></property>
</bean>
<!-- 裝配dao接口 -->
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.activiti.dao" /> <!-- DAO接口所在包名,Spring會自動查找其下的類 -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
3. Spring與SpringMVC整合
將SpringMVC整合進來,方便將前端結合起來
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/views" />
<property name="suffix" value=".jsp" />
</bean>
<!-- 訪問靜態資源 -->
<mvc:default-servlet-handler />
<!-- 訪問靜態資源 -->
<mvc:resources location="diagram-viewer/" mapping="diagram-viewer/**"/>
<mvc:resources location="editor-app/" mapping="editor-app/**"/>
<mvc:resources location="/" mapping="/**.html"/>
<mvc:resources location="/" mapping="/**.jsp"/>
<!-- 配置攔截器 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- /** 這里表示所有的url包括子url都進行攔截,如果是 /* ,則表示項目根url才會被攔截 -->
<mvc:mapping path="/**" />
<bean class="com.activiti.interceptor.LoginInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
4. java和頁面實現
這份代碼就不每個都粘貼了,是包含了相關頁面的和后台代碼的,具體的運行效果,看以下部分。
三、運行效果
Spring整合Activiti工作流
注:本文著作權歸作者,由demo大師代發,拒絕轉載,轉載需要作者授權