zoukankan      html  css  js  c++  java
  • Spring整合Activiti工作流

    代码地址如下:
    http://www.demodashi.com/demo/11911.html

    一、 前期准备

    安装必要的开发环境

    eclipse/intellij+maven 3.5.x + tomcat 7/8/9+mysql 5.x

    将sql目录下面的5个SQL文件导入数据库中

    二、 程序实现

    1. 项目结构

    项目结构

    web页面代码结构

    2. 主要配置
    1. 流程引擎的配置

    在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工作流

    代码地址如下:
    http://www.demodashi.com/demo/11911.html

    注:本文著作权归作者,由demo大师代发,拒绝转载,转载需要作者授权

  • 相关阅读:
    python出现import _socket ImportError: DLL load failed: %1 不是有效的 Win32 应用程序问题
    python 从字符串中解析xml
    python快速上手-让繁琐工作自动化之超级秒表,解决判断输入为回车以及时间相减
    python利用socket模块,写一个最最简单的tcp通信
    centOS7运行qt程序出现error: #error "Qt requires C++11 support
    Ubuntu下面QT编译报错: 错误 :-1: error: collect2: ld 返回 1
    Ubuntu环境,qt creator中,出现Cannot run compiler 'g++' Maybe you forgot to setup the environment解决方案
    电脑屏幕自动随背景变化解决方法
    Linux QT Kit丢失Version为空?
    Django signal 信号量
  • 原文地址:https://www.cnblogs.com/demodashi/p/8509895.html
Copyright © 2011-2022 走看看