WFMS(工作流管理系统):
http://baike.baidu.com/view/977667.htm
WFMC(工作流管理联盟):http://baike.baidu.com/view/2497858.htm
示例项目下载
http://pan.baidu.com/s/1gd3iNfH
环境搭建:
FBI WARNING两个视频,屏幕录像专家录制,非病毒,本站愿意承担责任,下载完文件请先核对MD5。
1.Eclipse配置Tomcat和部署WEB应用.exe(MD5:81c1dfb994ff5b2094ce0dac244da598)
http://pan.baidu.com/s/1kTgb8PL
2.Activiti项目搭建与Spring集成配置.exe(MD5:3debeec0a00dc061c782ca0cdcc97f7d)
http://pan.baidu.com/s/1sjyKCY5
项目搭建:
Maven项目POM
与Spring集成:
activiti.cfg.xml
- <beansxmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd">
- <!--Activiti处理引擎的配置,交由Spring管理-->
- <beanid="processEngineConfiguration"class="org.activiti.spring.SpringProcessEngineConfiguration">
- <!--配置数据源,和系统使用同一个数据源-->
- <propertyname="dataSource"ref="dataSource"/>
- <propertyname="databaseSchemaUpdate"value="true"/>
- <propertyname="jobExecutorActivate"value="false"/>
- <!--统一的事务管理-->
- <propertyname="transactionManager"ref="transactionManager"/>
- <propertyname="activityFontName"value="宋体"/>
- <propertyname="labelFontName"value="宋体"/>
- </bean>
- <beanid="processEngine"class="org.activiti.spring.ProcessEngineFactoryBean">
- <propertyname="processEngineConfiguration"ref="processEngineConfiguration"/>
- </bean>
- </beans>
activiti的API中,最终要的一个接口就是ProcessEngine,获取到ProcessEngine的实例,就获取了activiti体系中的所有api。重要的接口如下:
- ProcessEngineprocessEngine=ProcessEngines.getDefaultProcessEngine();
- RuntimeServiceruntimeService=processEngine.getRuntimeService();
- RepositoryServicerepositoryService=processEngine.getRepositoryService();
- TaskServicetaskService=processEngine.getTaskService();
- ManagementServicemanagementService=processEngine.getManagementService();
- IdentityServiceidentityService=processEngine.getIdentityService();
- HistoryServicehistoryService=processEngine.getHistoryService();
- FormServiceformService=processEngine.getFormService();
Activiti的服务框架如下
ActivitiController代码
- packageorg.xdemo.example.activiti.controller;
- importjava.awt.image.BufferedImage;
- importjava.io.IOException;
- importjava.io.InputStream;
- importjava.util.HashMap;
- importjava.util.List;
- importjava.util.Map;
- importjavax.annotation.Resource;
- importjavax.imageio.ImageIO;
- importjavax.servlet.http.HttpServletResponse;
- importorg.activiti.engine.ProcessEngine;
- importorg.activiti.engine.RepositoryService;
- importorg.activiti.engine.RuntimeService;
- importorg.activiti.engine.TaskService;
- importorg.activiti.engine.impl.cmd.GetDeploymentProcessDiagramCmd;
- importorg.activiti.engine.impl.interceptor.Command;
- importorg.activiti.engine.repository.ProcessDefinition;
- importorg.activiti.engine.runtime.ProcessInstance;
- importorg.activiti.engine.task.Task;
- importorg.springframework.stereotype.Controller;
- importorg.springframework.web.bind.annotation.RequestMapping;
- importorg.springframework.web.bind.annotation.RequestMethod;
- importorg.springframework.web.servlet.ModelAndView;
- @Controller
- @RequestMapping("/process")
- publicclassActivitiController{
- @Resource
- ProcessEngineengine;
- @RequestMapping(method=RequestMethod.GET)
- publicModelAndViewlist(ModelAndViewmav){
- mav.addObject("list",Util.list());
- mav.setViewName("process/template");
- returnmav;
- }
- @RequestMapping("deploy")
- publicModelAndViewdeploy(StringprocessName,ModelAndViewmav){
- RepositoryServiceservice=engine.getRepositoryService();
- if(null!=processName)
- service.createDeployment()
- .addClasspathResource("diagrams/"+processName).deploy();
- List<ProcessDefinition>list=service.createProcessDefinitionQuery()
- .list();
- mav.addObject("list",list);
- mav.setViewName("process/deployed");
- returnmav;
- }
- @RequestMapping("deployed")
- publicModelAndViewdeployed(ModelAndViewmav){
- RepositoryServiceservice=engine.getRepositoryService();
- List<ProcessDefinition>list=service.createProcessDefinitionQuery()
- .list();
- mav.addObject("list",list);
- mav.setViewName("process/deployed");
- returnmav;
- }
- @SuppressWarnings("unchecked")
- @RequestMapping("start")
- publicModelAndViewstart(Stringid,ModelAndViewmav){
- RuntimeServiceservice=engine.getRuntimeService();
- service.startProcessInstanceById(id);
- List<ProcessInstance>list=service.createProcessInstanceQuery()
- .list();
- mav.addObject("list",list);
- mav.setViewName("process/started");
- returnmav;
- }
- @RequestMapping("started")
- publicModelAndViewstarted(ModelAndViewmav){
- RuntimeServiceservice=engine.getRuntimeService();
- List<ProcessInstance>list=service.createProcessInstanceQuery()
- .list();
- mav.addObject("list",list);
- mav.setViewName("process/started");
- returnmav;
- }
- @RequestMapping("task")
- publicModelAndViewtask(ModelAndViewmav){
- TaskServiceservice=engine.getTaskService();
- List<Task>list=service.createTaskQuery().list();
- mav.addObject("list",list);
- mav.setViewName("process/task");
- returnmav;
- }
- @RequestMapping("complete")
- publicModelAndViewcomplete(ModelAndViewmav,Stringid){
- TaskServiceservice=engine.getTaskService();
- service.complete(id);
- returnnewModelAndView("redirect:task");
- }
- @RequestMapping("graphics")
- publicvoidgraphics(StringdefinitionId,StringinstanceId,
- StringtaskId,ModelAndViewmav,HttpServletResponseresponse)
- throwsIOException{
- response.setContentType("image/png");
- Command<InputStream>cmd=null;
- if(definitionId!=null){
- cmd=newGetDeploymentProcessDiagramCmd(definitionId);
- }
- if(instanceId!=null){
- cmd=newProcessInstanceDiagramCmd(instanceId);
- }
- if(taskId!=null){
- Tasktask=engine.getTaskService().createTaskQuery().taskId(taskId).singleResult();
- cmd=newProcessInstanceDiagramCmd(
- task.getProcessInstanceId());
- }
- if(cmd!=null){
- InputStreamis=engine.getManagementService().executeCommand(cmd);
- intlen=0;
- byte[]b=newbyte[1024];
- while((len=is.read(b,0,1024))!=-1){
- response.getOutputStream().write(b,0,len);
- }
- }
- }
- }
示例:
<转载请注明来源:
http://www.xdemo.org/spring-activiti-integration/ >
分享到:
相关推荐
activiti-engine-5.6 spring 集成所需要的jar包,现在官网或maven都找不到此版本的jar了。
activiti+flex项目搭建。本人研究亲测可以,附件上有数据库sql文件
activiti-modeler整合到spring项目的详细文档,及Activiti-activiti-5.22.0源码
4.程序中使用的是spring mvc注解的方式,可扩展的地方也很多,我是从网上下的maven项目,然后自己改成web项目,除了整个架子外,其他的都是我自己的东西 5.目前能实现的功能就是走一个流程,适合初学者研究 我深知...
Activiti 5.21 + moduler+spring mvc 基础环境搭建,可直接运行。包含Junit 测试,有建议或者意见可回复探讨,另请文明使用,谢谢!
Activiti入门篇之二 Spring 与Activiti的入门整合
activiti-5.21 + Activiti5.20.0整合spring4.15示例
activiti 基础 web项目 spring mvc.zipactiviti 基础 web项目 spring mvc.zip
jeecgboot++activiti5.22集成
工作需要用到Activiti,基于maven构建的Activiti与Spring集成的例子。网上找的例子参差不齐,我只要最简单的例子,网上没有所需要的,只我自已整理一份了。 该demo只是一个可以运行的最基本的例子。 希望该例子对例...
在搭建activiti开发环境时,遇到很多问题,最终成功后,将其写成环境搭建文档。
主要讲解Activiti框架环境的搭建,能够使用Activiti的API创建23张数据库表,正式开始Activiti之旅。 在前一章,介绍了Activitie核心的数据库23张表的特征【添加数据库结构简介链接】,在这里我们就要把Activiti集成...
SpringBoot集成Activiti完整工作流管理系统源码及SQL 包含如下主要内容: 1、工作流完整案例(请假流程、请假会签流程Demo) 2、系统用户权限、工作流用户和用户组管理 3、支持在线流程模型定义、部署、导出。也可用...
activiti-explorer 与spring整合,可在浏览器进行流程图编辑
javaWeb的OA项目后台使用SSH框架,其中提成activiti工作流,是activiti工作初学者最好的借鉴之选。
spring-boot与activiti 集成,使用的是activiti5.22,使用ideal开发工具,在test类中有整个调用实现过程,使用于新手测试及了解activiti,减少入门前的各种配置工作
activiti、spring mvc 基础web项目
springboot集成Activiti,只需要修改一下数据库就可以 直接运行,Activiti25张表会自动生成,具体代码文档里都有
小编 做的这个项目有部分功能用到了 Activiti工作流,目前对工作流的掌握程度是基本会用,我之前写过一篇 Activiti 入门篇,当前这篇文章是属于Activiti 实战部分,如果你想知道Activiti 工作流是如何使用的话,那就...
验证通过的springboot+mybatis+activiti集成,大伙快来下载吧