Spring整合Activiti工作流
2024-09-27 15:25:50
一、 前期准备
安装必要的开发环境
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大师代发,拒绝转载,转载需要作者授权
最新文章
- 探索Aspnetcore+mysql+efcore
- android xml解析添加到listview中的问题
- BLOCK的应用
- mouseover和mouseout多次触发解决方法(兼容ie和firefox)(转)
- HDU 3555 Bomb 数位dp
- POJ 1458
- delphi idhttp 实战用法(TIdhttpEx)
- 泛泰A860 Andorid4.4.3 KTU84M (Omni) 图赏
- 如何完成Nexus 9上电后激活过程
- 写出优雅又地道的pythonic代码(转自网络)
- 设计模式之中介者模式(Mediator )
- 【DOM练习】淘宝购物车
- Java Spring 在线程中或其他位置获取 ApplicationContext 或 ServiceBean
- Flask-SQLAlchemy常用操作
- Confluence 6 重构索引缓慢
- Windows 系统安装多个版本JDK, 修改环境变量不生效
- Windows android appium python3 环境搭建
- poj-2154-polya+euler函数
- NVelocity语法常用指令
- 遍历FTP目录及下载
热门文章
- redis的持久化(RDB&;AOF的区别)
- Ionic2 window开发环境搭建
- 【转】如何只用CSS做到完全居中
- python formatters 与字符串 小结 (python 2)
- Python_Tips[7] ->; 偏函数
- UVA Phone List (字典树)(查询是否有前缀或自身是其他的前缀)
- hadoop 编译代码及运行
- Spring MVC的工作机制
- [BZOJ 4117] Weather Report
- Java高级架构师(一)第07节:远程使用以及冲突解决