osworflow+spring

Spring Boot + BPMN流程管理引擎实践 本文首先介绍了BPMN基本概念以及为什么要引入BPMN;接着对实现了BPMN标准的开源框架进行了简单介绍和对比;然后重点介绍了Camunda BPMN框架的核心概念、框架及最佳开发实践,同时基于Spring Boot框架结合实际业务场景对Camunda的应用进行了介绍;最后是对于流程引擎集成到业务系统的一些注意事项说明。...... 阅读详情
最近一直忙于研究开源工作流osworkflow,该工作流还可以,虽然比起现在流行的jbpm来说暂时还是有一定的差距,主要表现在可视化GUI方面的差距上,但是jbmp是要jboss支持的,其可视化也是作为eclipse插件形式来应用的,所以对于没有采用jboss和eclipse的同志来说可能就不太方便,再者osworkflow的灵活性非常好。
     在最近经常上网查关于osworkflow2.8的资料,但不管是官方提供的资料和实例,还是网上很多同事发布的资料(和多都只是对官方资料的翻译和直接应用),很少能够按其配置而能够运行的,特别是对采用spring架构而在持久层没有采用hibernate的人来说将很麻烦(本人采用的是ibatis,所以只能采用jdbc),其jdbcstore里面有depercation的方法,所以继承了之后编译也有问题,需要调整编译方式。再者直接采用spring+jdbc直接在applicationcontent里面配置的是后将更加麻烦,所以本人最后还是将其osworkflow的源文件编译之后添加到osworkflow2.8的jar里面,然后写了一个类继承jdbdstore类。
 <bean id="workflowStore" class="com.framework.controller.MyJDBCWorkflowStore">
 <property name="ds"><ref bean="dataSource"/></property>
    <property name="entrySequence" value="SELECT seq_os_wfentry.nextVal from dual"/>
    <property name="stepSequence" value="SELECT seq_os_currentsteps.nextVal from dual"/>
    <property name="entryTable" value="OS_WFENTRY"/>
    <property name="entryId" value="ID"/>
    <property name="entryName" value="NAME"/>
    <property name="entryState" value="STATE"/>
    <property name="historyTable" value="OS_HISTORYSTEP"/>
    <property name="currentTable" value="OS_CURRENTSTEP"/>
    <property name="historyPrevTable" value="OS_HISTORYSTEP_PREV"/>
    <property name="currentPrevTable" value="OS_CURRENTSTEP_PREV"/>
    <property name="stepId" value="ID"/>
    <property name="stepEntryId" value="ENTRY_ID"/>
    <property name="stepStepId" value="STEP_ID"/>
    <property name="stepActionId" value="ACTION_ID"/>
    <property name="stepOwner" value="OWNER"/>
    <property name="stepCaller" value="CALLER"/>
    <property name="stepStartDate" value="START_DATE"/>
    <property name="stepFinishDate" value="FINISH_DATE"/>
    <property name="stepDueDate" value="DUE_DATE"/>
    <property name="stepStatus" value="STATUS"/>
    <property name="stepPreviousId" value="PREVIOUS_ID"/>
    <!--<property name="jdbcPropertySet"><ref local="jdbcPropertySet"/></property>-->
  </bean>
该bean是在spring里面配置jdbc的配置,里面的MyJDBCWorkflowStore类是我自己写的一个非常简单的类。该类继承自JDBCWorkflowStore。
<bean id="workflowFactory" class="com.opensymphony.workflow.spi.hibernate.SpringWorkflowFactory" init-method="init">
    <property name="resource"><value>workflow/workflows.xml</value></property>
    <property name="reload"><value>true</value></property>
  </bean>
该bean为osworkflow的factory。
<bean id="osworkflowConfiguration" class="com.opensymphony.workflow.config.SpringConfiguration">
    <property name="store"><ref local="workflowStore"/></property>
 <property name="factory"><ref local="workflowFactory"/></property>
  </bean>
该bean为osworkflow的configuration,configuration是osworkflow里面非常重要的组建。
<bean id="workflowTypeResolver" class="com.opensymphony.workflow.util.SpringTypeResolver">
  </bean>
<bean id="workflow" class="org.springframework.aop.framework.ProxyFactoryBean">
 <property name="singleton">
  <value>false</value>
 </property>
 <property name="proxyInterfaces">
  <value>com.opensymphony.workflow.Workflow</value>
 </property>
 <property name="interceptorNames">
  <list>
   <value>transactionInterceptor</value>
   <value>workflowTarget</value>
  </list>
 </property>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource">
      <ref local="dataSource"/>
    </property>
  </bean>
  <!--定义事务管理的拦截器-->
  <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
    <property name="transactionManager">
      <ref local="transactionManager"/>
    </property>
    <property name="transactionAttributes">
      <props>
        <prop key="*Transaction">PROPAGATION_REQUIRED</prop>
      </props>
    </property>
  </bean>
<bean id="workflowTarget" class="com.opensymphony.workflow.basic.BasicWorkflow" singleton="false">
 <constructor-arg><value>test</value></constructor-arg>
 <property name="configuration"><ref local="osworkflowConfiguration"/></property>
 <property name="resolver"><ref local="workflowTypeResolver"/></property>
</bean>
其他的这几个bean只是几个非常简单的配置,只要用过spring框架及其aop代理的人应该都知道,在这里就不再介绍了。
其次,大家需要注意的就是osuser.xml和持久化的propertyset.xml一定要放在classes里面,而不能放在classes里面的子文件夹。
配置好了之后其他的都和官方自带的东西一样。不过在osworkflow2.8带的例子里面用户登录注册的user和group之间没有联系,所以不能直接应用。
 
Osworkflow10份资料 JPetStoreOSGI.rar Mytestworkflow.rar Osworkflow持久化.doc Osworkflow的介绍.doc osworkflow配置与demo.rar osworkflow中文开发指南.rar OSWorkflow中文手册OSWorkflow-chinese-manual-2.8.pdf Packt.Publishing.OSWorkflow.A.Guide.for.Java.Developers.and.Architects.Aug.2007.pdf 工作流普及风暴—基础概念.doc 用osworkflow写一个请假例子.rar 立即下载

相关推荐

Java四大主流开源工作流引擎分析Shark,osworkflow,jbpm,jflow

Shark的靠山是Enhydra。Enhydra做过什么呢?多了!从j2ee应用服务器,到o/rmapping工具,到这个工作流引擎等等。为什么Shark的持久层采用DODS来实现?就是因为他们是一家人。 Jbpm的靠山是jboss。Jbpm3的持久层采用hibernate3来实现,也是因为这个原因吧。Jbpm3的图形化流程定义已经决定嵌入到jboss eclipse IDE中,大家看看jboss eclipse IDE preview 1.5版,我们已经可以用插件方式编辑一个jbpm3流程定义文件了。 Osworkflow的靠山是opensymphony。我是非常喜欢这个组织的,它做出了很多的好东西。在开发工作流管理系统时,我就推荐用它的另外一个东西:webwork2。笔者主持的开源工作流引擎AgileFlow就是基于ww2+spring+hibernate架构实现的。写到这里我想是不是它可以和struts2进行完美整合?! Jflow是从ccflow演化而来的国产工作流引擎,富有太多的业务场景设置。 Ccflow是.net开发的,功能与ccflow完全相

osworkflow与spring的集成

osworkflow与spring的集成方法,在OSWorkflow开发指南.pdf

ls077的专栏 2735

osworkflow 简单实例

osworkflow 简单实例, 请假系统,第一步发送请求,第二步manager审批,由reject和approve两个结果

osworkflow与spring的整合

    经过两天的辛勤努力,一个简单Spring+osworkflow结构的代码框架终于搭建好了,用Spring来管理bean和实现页面的跳转,osworkflow来实现业务流程,在页面上显示,使得按钮连接能够显示当前的状态,并且能够使流程前进,虽然这么一个看似简单的结构在以前也接触过,但是真的让我自己从头搭一个环境、只用该用的、不用多余的还真有点难,这里我不讲技术实现,因为对于实现来讲,大侠们都

园园的专栏 6922

osworkflow2.8基于Spring+Hibernate

博文链接:https://andrawu.iteye.com/blog/37031

osworkflow + spring + hibernate 实例,可运行!!

按照网上的文章将例子写了出来,网上的文章错误好多啊,依赖包也没有啊,我自己参考多篇文章终于搞出来了,可以运行!!

spring2.5整合osworkflow2.8

        这里是spring2.5 用spring jdbc template的方式整合osworkflow2.8,数据库是mysql的。整合过后,由spring来管理osworkflow的配置类,由于是用spring jdbc才操作osworkflow的数据库,所以datasource可以纳入spring统一控制。  下面是spring整合osworkflow的配置文件: 

把理性与逻辑灌入电光石火奔腾流淌的指令集…… 2781

osworkflow+spring+jdbc实现

NULL 博文链接:https://dingchao-lonton.iteye.com/blog/1662545

将osworkflow与spring和hibernate集成的基本介绍

1. 将osworkflow与spring和hibernate结合的原因     1)简化对osworkflow的配置     2)利用hibernate框架的一些特性,如持久化,缓存等     3)事务管理,osworkflow本身是不支持事务的,而事务是作为一个产品的基本功能     4)可以利用spring加入其它的扩展功能,如用户认证和鉴权。这点本文没有介绍。

爬虫 的博客 2166

安鸾渗透测试平台-CTF系列-bash

工具Xshell 公网VPS接收反弹shell Xshell新手的下载及安装教程(超详细)_新手程序员攀爬之路的博客-优快云博客_xshell使用教程 Xshell连接后 #!/bin/bash cat ${0} while : do echo "$" read input output=`$input` 显示了一个文件,不过咋做呢?这里可能考察的是linux的语法 方法 输入bash 获得shell cat ${0} while : do .

AAAAAAAAAAAA66的博客 2689

电子技术——共栅和共源共栅放大器的高频响应

我们在之前学过无论是是CS放大器还是CE放大器,都可以看做是一个带通(IC低通)滤波器。在高频处的响应收到输入电容 $C_{in}$ 的限制(主要是米勒效应)。因此,若想扩大放大器的带宽,我们必须减小米勒效应,一种方案就是共栅放大器。

jiahonghao2002的博客 4183

Java spring boot 全解Camunda 7,从 0 到 1 构建工作流平台——第一节:各个开源框架对比

介绍 camunda 7 的生态环境、发展历程、以及和其它开源框架的对比。

良木 8283

Claude Code 使用 OpenAI Codex(GPT-5.3-Codex)完整配置教程

通过 LiteLLM 可以让 Claude Code 调用任何模型,包括:OpenAIDeepSeekGemini本地模型↓↓优点:不依赖 Anthropic API可自由切换模型支持统一 AI Gateway这种“LLM Gateway 架构”正在成为 AI 开发工具的主流实践。

Jacobe_zhao的博客 1万+

springboot集成Camunda审核流程(一):Springboot集成配置

Springboot整合Camunda

LiuCJ_20000的博客 1856

从零开始:使用Mask2Former训练你的专属图像分割数据集

本文详细介绍了如何使用Mask2Former训练自定义图像分割数据集,从环境配置、数据集准备到模型训练与优化。通过实战技巧和问题排查指南,帮助开发者高效完成从零开始的图像分割任务,特别适合需要处理自定义数据集的AI研究人员和工程师。

weixin_30566063的博客 644

rv1126 SDK编译【2020-0912版本SDK包】

rv1126 sdk 编译

学习记录 1万+

OSWorkFlow详细介绍

1.OSWorkFlow基本概念     在商用和开源世界里,OSWorkflow 都不同于这些已有的工作流系统。最大不同在于 OSWorkflow 有着非常优秀的灵活性。在开始 接触 OSWorkflow 时可能较难掌握(有人说不适合工作流新手入门),比如,OSWorkflow 不要求图形化工具来开发工作流,而推荐手工编 写 xml 格式的工作流程描述符。它能为应用程序开发者提供集成,也

Java海洋 3万+

onnxruntime-gpu版本选择与CUDA环境配置实战指南

本文是onnxruntime-gpu版本选择与CUDA环境配置的实战指南。针对AI模型部署中常见的GPU无法调用问题,核心在于确保onnxruntime-gpu版本与系统CUDA Toolkit版本严格匹配。文章详细讲解了如何精准确定CUDA版本、查找官方对应关系、执行正确安装命令,并通过完整测试脚本验证GPU是否成功启用,最后提供了常见问题排查与生产环境调优建议。

weixin_29164091的博客 522

Camunda流程引擎教程(完整版)

当流程走到用户任务、时间等待节点等,事务会先将数据持久化到数据库,这个状态被称为“事务的边界“。如果不使用,默认就会回滚到成功的那个节点位置。有时候我们想修改一个运行中的流程,如果另起一个新流程,就不容易统计之前那个流程的数据,如果将所有版本都放一个流程中,通过流程ID去查询历史数据,会让统计变得很方便。指同一个审批节点设置多个人,如ABC三人,三人会同时收到审批,需全部同意之后,审批才可到下一审批节点。指同一个审批节点设置多个人,如ABC三人,三人会同时收到审批,只要其中任意一人审批即可到下一审批节点。

JiaVaHao的博客 1万+

Hadoop在大数据领域的电商数据分析案例

随着电商行业的迅猛发展,每天都会产生海量的数据,如用户浏览记录、购买行为、商品信息等。如何从这些数据中提取有价值的信息,为电商企业的决策提供支持,成为了电商企业面临的重要问题。Hadoop作为一个开源的分布式计算平台,具有高可靠性、高扩展性和高效性等特点,能够很好地处理大数据。本文的目的就是通过实际案例,详细介绍Hadoop在电商数据分析中的应用,范围涵盖了从数据采集、存储到分析的整个流程。本文首先介绍背景信息,让读者了解Hadoop在电商数据分析中的重要性和应用场景。

Java大师兄的博客 1178

RK3588&RK3576实现 HW-ID DTB(动态加载不同的Kernel DTB)功能

RK平台的U-Boot⽀持检测硬件上的GPIO或者ADC状态动态加载不同的Kernel DTB,暂称为HW-ID DTB(Hardware id DTB)功能。

Wynter 849

Spring Boot + liteflow 居然这么好用!实战

在我们的日常开发中,经常会遇到一些需要串行或并行处理的复杂业务流程。那我们该如何利用结合liteflow规则引擎来简化我们的业务流程先看一个实战案例!!在电商场景下,当订单完成后,我们需要同时进行积分发放和消息发送。这时候,我们可以利用liteflow进行规则编排,处理这些并行任务。

2276

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

常见的工作流引擎(osworkflow、jbpm、activiti、flowable、camunda)比较

市场上比较有名的开源流程引擎有osworkflow、jbpm、activiti、flowable、camunda。其中:Jbpm4、Activiti、Flowable、camunda四个框架同宗同源,祖先都是Jbpm4,开发者只要用过其中一个框架,基本上就会用其它三个。开发低代码平台、OA系统、BPM软件均需要流程可视化功能,而流程可视化核心是流程引擎和流程设计器,对于市场上如此多的开源流程引擎,哪个功能和性能好,该如何选型呢?............

justlpf的专栏 6万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

osworkflow mysql_Osworkflow整合Spring

一、先看一下spring配置文件中的配置内容:1、首先设置数据源dataSource:classpath:conf/jdbc.properties1 2 3 ${driverClassName}4 5 6 ${urlAddr}7 8 9 ${use...

weixin_42299089的博客 310

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Osworkflow整合Spring

一、先看一下spring配置文件中的配置内容: 1、首先设置数据源dataSource: <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">   <property name="locations"&gt...

weixin_30367873的博客 243
上一篇: 程序员该做的事
下一篇: Hibernate中文查询生成SQL时会生成乱码解决
hack103
博客等级 码龄19年 1粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值