`
zhxp791008
  • 浏览: 31912 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JBPM与Spring的集成开发(包括可视化,事务,业务关联,扩展等)

阅读更多
1、  加入JBPM支持包

下载jbpm-starters-kit-3.1.4在项目的classPath中加入jbpm-3.1.4.jar、jbpm-identity-3.1.2.jar、jbpm-webapp-3.1.2.jar,

jbpm-3.1.4.jar必须加入,是JBPM的核心包;bpm-identity-3.1.2.jar为JBPM的用户权限验证包,如使用系统自身的用户表可不加入;jbpm-webapp-3.1.2.jar是WEB项目的包,包括流程发布,流程图显示,流程定义上传等。

2、  与现有SSH系统集成

A、 加入Spring支持包spring-modules-jbpm31.jar,该包加入了Spring对JBPM的包装,的有的集成都是在此包基础之上。

B、 配置sessionFactoryForJbpm ,jbpmConfiguration,jbpmTemplate, jbpmDao

    <bean id="sessionFactoryForJbpm"       class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">       <property name="mappingLocations">           <list>              <!-- 加载jbpm的配置文件,如不要jbpm的权限控制,可以在lib中去掉jbpm-identity-3.1.2.jar -->              <value>classpath*:/org/jbpm/**/*.hbm.xml</value>           </list>       </property>       <property name="hibernateProperties"           ref="myHibernateProperties" />       <property name="dataSource" ref="myDataSource" />
</bean>

    <bean id="jbpmConfiguration"    class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">       <property name="sessionFactory" ref="sessionFactoryForJbpm" />       <property name="configuration" value="classpath:jbpm.cfg.xml" /><!-- jbpm.cfg.xml 配置JBPM的参数,如邮件服务器地址等,保持默认即可,此文件需加入以SRC目录下。如目录不同,需同步更改此处配置</bean><!—如需加入更多的方法,可以在CustomerJbpmTemplate 中加入-->    <bean id="jbpmTemplate"       class="com.col.frame.dao.jbpmDao.CustomerJbpmTemplate">       <property name="jbpmConfiguration" ref="jbpmConfiguration" /></bean> <!—jbpmDao是系统加入的abstract BEAN,所有的DAO都Extends此BEAN,这样子DAO可以不关心具体的JbpmTemplate是什么,是需要用getTemplate即可操作JBPM-->    <bean id="jbpmDao" abstract="true"       class="com.col.frame.dao.jbpmDao.JbpmDaoHibernate">       <property name="template" ref="jbpmTemplate" /></bean>这样就完成了JBPM与SPRING的集成,现在JBPM就可以和业务操作在一个事务完成。附:事务参考配置<bean id="myTransactionManager"       class="org.springframework.orm.hibernate3.HibernateTransactionManager">       <property name="sessionFactory" ref="sessionFactoryForJbpm" />    </bean>    <bean id="beanNameProxy"       class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">       <property name="beanNames">           <value>*Manager</value>       </property>       <property name="interceptorNames">           <list>              <value>transactionInterceptor</value>           </list>       </property>    </bean>    <bean id="transactionInterceptor"       class="org.springframework.transaction.interceptor.TransactionInterceptor">       <property name="transactionManager">           <ref bean="myTransactionManager" />       </property>       <property name="transactionAttributes">           <props>              <prop key="*">PROPAGATION_REQUIRED</prop>           </props>       </property>
</bean>

3、  加入可视化流程编辑器

jbpm-starters-kit-3.1.4\jbpm-designer\jbpm-gpd-feature\eclipse中的两个目录中的文件就是Eclipse是JBPM可视化编辑器,建议以link方式加入。注意Eclipse版本的。

完成后可以找到

加入JBPM的Eclipse配置,目的是新建一个JBPM项目时,Eclipse可以找到对应的JBPM包并加入到项目中来.



Location定位到\jbpm-starters-kit-3.1.4\jbpm下。

4、  新建一个JBPM流程定义



目录位置最好是单独一个,如org.test.jpdl

5、  新建完成后,在对应目录下将有三个文件,processimage.jpg是流程定义的效果图,gpd.xml是流程定义各任务的位置数据,processdefinition.xml是真正的流程定义。我们只是对processdefinition.xml进行更改。

6、  一个简单的流程定义



processdefinition.xml内容

<?xml version="1.0" encoding="UTF-8"?><!—name为流程定义的名--><process-definition xmlns="" name="hello"><!—泳道配置,主要是用于设置任务的确良Actor-->    <swimlane name="user">       <assignment class="org.assignment.MyAssignment" />    </swimlane>    <start-state name="start">       <task name="input message">           <controller>              <variable name="message" access="read,write,required"></variable>           </controller>       </task>       <transition name="send" to="show message">           <action name="firstHandler" config-type="bean"           <!—-如Handler中需用到Spring的资源,可以用spring的proxy-->    class="org.springmodules.workflow.jbpm31.JbpmHandlerProxy"><!-- messageActionHandler 在Spring配置文件中的Bean-->              <targetBean>messageActionHandler</targetBean>              <factoryKey>jbpmConfiguration</factoryKey>           </action>       </transition>    </start-state>    <end-state name="end1"></end-
processdefinition.xml内容
<?xml version="1.0" encoding="UTF-8"?>
<!—name为流程定义的名-->
<process-definition xmlns="" name="hello">
<!—泳道配置,主要是用于设置任务的Actor-->
<swimlane name="user">
<assignment class="org.assignment.MyAssignment" />
</swimlane>
<start-state name="start">
<task name="input message">
<controller>
<variable name="message" access="read,write,required"></variable>
</controller>
</task>
<transition name="send" to="show message">
<action name="firstHandler" config-type="bean"
<!—-如Handler中需用到Spring的资源,可以用spring的proxy--> class="org.springmodules.workflow.jbpm31.JbpmHandlerProxy">
<!-- messageActionHandler 在Spring配置文件中的Bean-->
<targetBean>messageActionHandler</targetBean>
<factoryKey>jbpmConfiguration</factoryKey>
</action>
</transition>
</start-state>
<end-state name="end1"></end-state>
<task-node name="show message">
<task name="message show" swimlane="user">
<controller>
<variable name="message" access="read"></variable>
</controller>
</task>
<transition name="ok" to="end1"></transition>
</task-node>
</process-definition>
7、 发布流程,各join,fork,task的处理(各具体的流程相关,可以参看JBPM文档)
8、 与业务的集成
可以在流程任务上加入变量,如变量名为MyRequestID,存贮MyRequest业务表的ID,就可以详细记录每个任务的执行信息。
9、 对JBPM的扩展
如果JBPM的hibernate的操作不够,可以修改org.jbpm.db.hibernate.queries.hbm.xml加入对应的query,然后再在对应的类中加入相应的方法。
分享到:
评论

相关推荐

    JBPM与Spring集成开发指南.docx

    总之,JBPM与Spring的集成开发能够为企业的业务流程自动化提供强大的支持,通过Spring的灵活性管理和控制JBPM,实现高效、灵活的业务流程管理。开发者需要熟悉两者的特性和API,以便于在实际项目中构建出符合需求的...

    JBPM与Spring集成开发指南

    3. **事务管理**:配置Spring的事务管理器,确保工作流操作与业务操作在同一事务中,保证数据一致性。 4. **流程定义与部署**:使用Spring的ApplicationContext加载BPMN2.0格式的流程定义文件,并部署到JBPM引擎中。...

    JBPM与Spring集成开发指导书.doc

    【JBPM与Spring集成开发】\n\nJBPM(Java Business Process Management)是一个开源的工作流管理系统,它允许开发者设计、执行、监控和优化业务流程。Spring框架则是一个广泛应用的Java企业级应用开发框架,提供了...

    JBPM与Spring集成开发指导书.docx

    【JBPM与Spring集成开发】是企业信息化管理中的一项关键技术,它涉及到工作流管理系统与Spring框架的结合,以实现高效、灵活的业务流程自动化。JBPM是一个知名的开源工作流引擎,它允许开发者定义、执行和管理工作...

    jbpm与spring集成

    【jbpm与Spring集成】是企业级应用中常见的技术整合,旨在利用jbpm(Java Business Process Management)的流程管理能力,结合Spring框架的灵活服务管理,实现高效、可扩展的业务流程自动化。jbpm是一个开源的工作流...

    Spring与JBoss JBPM工作流集成开发指南

    Spring与JBoss JBPM工作流集成开发指南是关于JBPM与Spring框架集成的开发文档,涵盖了工作流的基本概念、设计要点、常见问题解答、参考资源等。下面是从该文件中生成的相关知识点: 一、工作流管理系统 工作流管理...

    jbpm5.4 spring mvc 集成

    jbpm5.4与Spring MVC的集成是企业级应用开发中的常见组合,它结合了jbpm(业务流程管理)的强大功能和Spring MVC的灵活控制层架构。以下将详细阐述这一集成涉及的关键知识点: 1. **jbpm5.4**:jbpm是一个开源的...

    jbpm4 集成 spring 的试用代码

    jbpm4是一款强大的业务流程...总的来说,jbpm4与Spring的集成可以提高流程管理的灵活性和可扩展性,使得开发者能够更好地管理和控制业务流程。在实际开发中,应充分理解并掌握上述知识点,以实现高效、稳定的流程应用。

    jbpm+spring配置

    【jbpm+spring配置】是将业务流程管理(Business Process Management, BPM)框架jbpm与企业级应用开发框架Spring相结合的实践。jbpm是一个开源的BPM解决方案,它提供了流程定义、执行、监控和管理的一整套工具。而...

    Spring与JBPM4的集成.docx

    Spring与JBPM4的集成 Spring框架和JBPM4的集成是指将Spring框架与JBPM4业务流程管理系统集成,以便更好地管理业务流程和工作流程。这种集成可以提供更加灵活和高效的业务流程管理解决方案。 知识点1:为什么需要...

    spring与jbpm的集成包(符集成方法)

    8. **spring-modules-jbpm31.jar**:这个 JAR 文件很可能是 Spring 与 JBPM 3.1 版本的集成组件,包含了必要的桥接和适配器类,以便于在 Spring 环境中使用 JBPM。 9. **readme.txt**:这个文件通常包含集成指南、...

    jbpm4.3与spring整合

    本文档将详细介绍如何将JBPM 4.3版本与Spring框架进行整合,包括环境搭建、配置文件调整以及具体的整合步骤等。 #### 一、环境准备 在开始整合之前,我们需要确保具备以下软件环境: - **JBPM版本**:4.3 - **...

    JBPM4.3 Spring会签 实例

    这些bean是Spring与JBPM交互的基础,通过它们可以启动流程实例、执行任务以及查询流程状态。 其次,创建流程定义(.bpmn文件)来描述会签流程。在这个流程中,可以设置多个并行的任务节点,每个节点代表一个会签的...

    JBPM4与Spring整合例子代码

    将JBPM4与Spring进行整合,可以充分利用Spring的灵活性和JBPM4的流程管理能力,构建高效且可扩展的OA(Office Automation)工作流系统。 在"风中叶老师讲的JBPM4与Spring整合例子代码"中,我们可以了解到如何将这两...

    JBPM5 整合Spring3经典案例

    Spring3还包含了数据访问、事务管理、Web应用和集成测试等多种模块,使得开发者可以构建松耦合、模块化的应用系统。 ### 3. JBPM5与Spring3整合 - **依赖注入**:通过Spring的DI,可以将JBPM的相关组件(如流程...

    提前试用spring 集成 jbpm4

    将jbpm4集成到Spring中,可以实现灵活的业务流程自动化,提高开发效率。 在"提前试用spring 集成 jbpm4"这个主题中,我们主要关注的是如何将这两个强大的工具结合在一起,以实现更高效、更灵活的业务流程控制。首先...

    spring与JBPM整合ppt

    JBPM可以与Java EE或Spring等框架集成,提供可视化的工作流设计、流程监控和执行等功能。 3. **整合原理**:Spring与JBPM的整合主要基于Spring的bean管理和事务管理能力。通过Spring的ApplicationContext,我们可以...

Global site tag (gtag.js) - Google Analytics