fire workflow总结

摘要:
默认情况下,FireWorkflow使用hibernate访问数据库。将存储服务实现类注入RuntimeContext。此服务负责根据流程ID和版本号获取流程定义对象WorkflowDefinition。此实现类从文件系统获取进程定义对象。此类从类路径中读取流程定义文件,并直接读取当前流程定义文件。

一、Fire WorkFlow核心
1.IPersistenceService
存储服务。Fire Workflow 缺省情况下使用hibernate 进行数据库存取。如果你的系统不
是使用hibernate,则重新实现该类,然后通过修改FireflowContext.xml 配置,将你的存储服
务实现类注入到RuntimeContext 中。
2.IDefinitionService
    流程定义服务。该服务负责根据流程ID和版本号获得流程定义对象WorkflowDefinition。从该对象可以获得WorkflowProcess,即真正的流程定义。
Fire Workflow 缺省提供两种实现,
    一种实现是org.fireflow.engine.definition.DefinitionService4FileSystem。该实现类从文件系统中获得流程定义对象,在开发阶段使用该类比较方便。该类从class path 中读取流程定义文件,因此你在项目中设计流程时, 推荐将流程定义文件置于/src 或者其子目录中。DefinitionService4FileSystem 忽略流程的版本,直接读取当前的流程定义文件。
    另一个实现是org.fireflow.engine.definition.DefinitionService4DBMS。该实现类从数据库
表T_FF_DF_WORKFLOWDEF 中获得流程定义文件。因为表T_FF_DF_WORKFLOWDEF中保存了流程的版本号,因此该类在产品真正运行时使用。
在FireflowContext.xml 修改相关的配置即可实现这两个类的切换。
3.ICalendarService
    日历服务。日历服务负责获取系统时间和计算TaskInstance 的ExpiredDate。缺省实现中,
系统时间是返回new Date(),也只考虑了周六、周日作为节假日的情况。你可以扩展该类获
取数据库时间作为系统时间,增加节假日配置。
4.IConditionResolver
转移条件解析器,用于计算转移条件中的EL 表达式的值。
5.ITaskInstanceManager
任务管理器,负责创建任务实例,缺省实现是BasicTaskInstanceManager。
6.BeanFactory
在1.0 中,增加了一个新的服务: bean factory。该服务负责创建各种javabean,例如:
进行工作项分派的时候,需要获得AssignmentHandler 的实例;执行ToolTask 的时候,需要
获得ApplicationHandler 的实例,等等。这些实例都是由bean factory 创建的。在1.0 中,这
个bean factory 的缺省实现是spring ioc 容器,即,将创建bean 的工作委派给了spring 。
注意:Bean factory 在上述的Engine 结构图中没有画出来。Fire workflow1.0 的引擎实
际结构如下,增加了bean factory。


二、Fire workflow 嵌入J2EE系统的详细步骤
将Fire Workflow 嵌入J2EE 系统的的步骤和第2 章描述的差不多。
首先,给项目增加Fire Workflow 支持。即,将相关的Jar 包扔到你的项目的WEB_INF/lib
中去,并创建相关的表结构
然后,配置FireWorkflow,主要配置内容如下。
1、将Fire workflow Engine 的一些hibernate 映射文件注册到sessionFactory 中
2、打开FireflowContext.xml,配置PersistenceService 的sessionFactory 属性
3、打开FireflowContext.xml,给runtimeContext bean 选择适当的definitionService;如
果你使用definitionService4FileSystem,则需要将流程定义文件的classpath 路径注入进去。
最后,编码调用Fire Workflow。

免责声明:文章转载自《fire workflow总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇KVM虚拟化环境准备佳源撤资名门?真的,假的下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

spring boot 访问页面(静态页面及jsp页面)

1.访问静态html 页面 ,使用官网提供的demo和还是一直访问不到html ,后来使用thymeleaf 模板,引入了依赖,发现html也能正常访问了 a) main/resource  文件夹下新建一个templates 文件夹 b) 添加maven 依赖 c) 编写控制方法 启动之后访问 localhost:prot/index 就能访问到页...

nginx配置静态文件服务器的一个特殊需求的探索和分享, nginx处理不同路径返回统一文件,nginx改写,跳转请求.

最近在做一个前后端分离的个人博客,在做自己博客的时候有个想法,本来是打算用nginx作为静态文件服务器使用,django做后端程序. 我的前端页面用vue写的,结果用组件用嗨了,发现页面列表和 详情都是通过切换组件实现的,这样很省代码,但是为了实现下面这种效果的时候遇到了问题: 我要访问url: http://www.liushx.com/artical/...

Golang中的插件开发

  插件化开发提供了很多便利,可动态扩展程序的相关功能,如Windows中的DLL、Linux中的So文件、还有IDEA中的插件,应用范围不可谓不广;   在Golang中提供了自己的插件机制,可使用其进行插件化开发;在Golang的plugin包中提供了加载插件、调用插件中函数的相关方法; Golang中的插件机制使用非常简单;就只有这么三步:   1、...

VS 2010 安装 .net framework2.0/3.0/3.5

默认情况下,安装VS2010后,会自动安装.net framework4.0,如果要把程序编译成2.0,那就需要手动安装.net framework 2.0。  方法一:(未测试)  VS2010安装项目的系统必备中没有.NET 2.0,不过我们可以从VS2008的程序文件中找到 .NET 2.0 的系统必备安装包。     安装了VS2008 的 C:\...

oracle 跟踪文件和转储命令

一、Oracle跟踪文件        Oracle跟踪文件分为三种类型,一种是后台报警日志文件,记录数据库在启动、关闭和运行期间后台进程的活动情况,如表空间创建、回滚段创建、某些alter命令、日志切换、错误消息等。在数据库出现故障时,应首先查看该文件,但文件中的信息与任何错误状态没有必然的联系。后台报警日志文件保存BACKGROUND_DUMP_DES...

创建docker容器遇到的错误

1.问题截图   2.问题描述  出现该问题就是docker版本和系统版本不兼容导致的.   现在的系统版本和docker的版本如下:   3.问题解决   安装低版本的docker或者高版本的系统(Centos7.4以上)即可解决.   安装低版本的docker地址: https://www.cnblogs.com/jialanyu/p/1087545...