`

JBPM4与Spring整合的2种方式 (转)备忘

    博客分类:
  • jbpm
 
阅读更多

JBPM4与Spring整合的2种方式  

下面我们介绍jBPM与Spring整合的2种方式:
 
第一种:手工将SessionFactory放入jBPM4中。

第1步:更改jbpm.spring.default.cfg.xml配置文件,将下面的部分注释掉
<!--   
   <hibernate-configuration>  
     <cfg resource="jbpm.hibernate.cfg.xml" />  
   </hibernate-configuration>  
  
   <hibernate-session-factory />  
 -->
部 分是在jBPM4中创建了sessionFactory,而我们只需要一个sessionFactory。既然要将jBPM4与Spring的整合,那就 希望由Spring来统一管理sessionFactory和事务,在Spring的配置文件中构造一个sessionFactory。 ProcessEngine是jBPM4的Facade模式,一切由它与外部交互。

    
第2步:在Spring配置文件中写一个bean:
<bean id="processEngine" class="com.family168.jbpm.ProcessEngineFactoryBean">  
        <property name="sessionFactory" ref="sessionFactory"/>  
 </bean>  
<bean id="processEngine" class="com.family168.jbpm.ProcessEngineFactoryBean">  
        <property name="sessionFactory" ref="sessionFactory"/>  
 </bean>  

第3步:在ProcessFactoryBean中注入SessionFactory:
public void setSessionFactory(SessionFactory sessionFactory) {   
      this.sessionFactory = sessionFactory;   
}  

第 4步:在ProcessFactoryBean中创建一个SpringConfiguration,然后将sessionFactory放入 SpringConfiguration中,再从SpringConfiguration得到processEngine,代码如下: 
public void afterPropertiesSet() {   
        SpringConfiguration cfg = new  SpringConfiguration(jbpmConfigurationLocation);   
        cfg.setApplicationContext(applicationContext);   
  
        cfg.setSessionFactory(sessionFactory);   
        this.processEngine = cfg.buildProcessEngine();   
    }  
然后我们的工作就可以开展了,可以从processEngine得到所有的service。比如: 
 Java代码 
ProcessEngine processEngine = (ProcessEngine) ctx.getBean("processEngine");   
RepositoryService repositoryService = processEngine.getRepositoryService();。

第2种:获得Hibernate的SessionFactory。
第1步:与第一种方式的第1步一样。
第2步:更改jbpm.tx.spring.cfg.xml配置文件: 
将
<standard-transaction-interceptor/>
改成

<spring-transaction-interceptor current="true" /> 
然后将
<transaction/>  
   <hibernate-session/>
改成<hibernate-session current="true"/>  

这部分修改是将jBPM4创建的spring事务和hibernate的session改成从当前的ThreadLocal中获得session和事务。 
第3步:在Spring配置文件中写bean,processEngine和template:
<bean id="jbpmConfiguration" class="org.jbpm.pvm.internal.cfg.SpringConfiguration">  
        <constructor-arg value="jbpm/jbpm.cfg.xml" />  
    </bean>  
  
    <bean id="processEngine" factory-bean="jbpmConfiguration" factory-method="buildProcessEngine" />  
  
    <bean id="jbpmTemplate" class="com.family168.jbpm.JbpmTemplate">  
        <property name="processEngine" ref="processEngine"/>  
        <property name="dataSource" ref="dataSource"/>  
    </bean>
 

processEngine直接使用factory-bean指向jbpmConfiguration,也就是org.jbpm.pvm.internal.cfg.SpringConfiguration,并从SpringConfiguration的buildProcessEngine中获得。 
jbpmTemplate主要是控制事务,在processEngine外面创建事务,这样使用的时候会先调用jbpmTemplate,再调用processEngine,否则它会说事务没有启动。在jbpmTemplate中注入processEngine: 
public void setProcessEngine(ProcessEngine processEngine) {   
        this.processEngine = processEngine;   
    }
public void setProcessEngine(ProcessEngine processEngine) {
          this.processEngine = processEngine;      
}
这里在上面已经将事务改成从当前的Threadlocal中获得,所以jBPM4是必须当前有事务,如果没有创建事务的话
分享到:
评论

相关推荐

    jBPM4与Spring整合的2种方式

    **标题:“jBPM4与Spring整合的2种方式”** **内容概述:** jBPM4是一款开源的工作流管理系统,它提供了业务流程管理(BPM)和工作流服务。而Spring是一个广泛应用的Java企业级应用框架,它简化了开发、配置和管理...

    JBPM4与Spring整合例子代码

    **JBPM4与Spring整合详解** JBPM4(Java Business Process Management 4)是一个开源的工作流管理系统,它提供了业务流程的建模、部署、执行和监控功能。Spring框架则是Java应用开发中的一个核心组件,主要负责依赖...

    jbpm4.3与spring整合

    在企业级应用开发中,流程管理引擎JBPM(JBoss Business Process Management)与Spring框架的结合使用是常见的一种技术方案。JBPM是一个灵活、强大的业务流程管理工具,而Spring框架则以其优秀的依赖注入(DI)和...

    jbpm4和spring整合例子

    近期网上有人介绍jBPM4与Spring整合的2种方式,但没有人贴出代码,闲着无聊写了个例子,源码见附件,在WEBLOGIC下运行正常,事务由spring控制http://ip:7001/Spring/helloWorld.do

    Jbpm4.4 整合Spring Hibernate4

    **Jbpm4.4整合Spring Hibernate4详解** Jbpm4.4是一个流程管理系统,它结合了业务流程管理(BPM)和工作流服务,提供了强大的流程定义、执行和监控能力。在这个版本中,Jbpm与Spring框架和Hibernate ORM工具进行了...

    Jbpm4与SSH整合

    4. **业务接口设计**:在Struts2中定义处理流程相关请求的Action,这些Action会调用Spring管理的Service来与JBPM4交互,如启动流程、提交任务等。 5. **持久化处理**:使用Hibernate定义请假流程中的实体类,并配置...

    JBPM4.4+spring+ext整合

    【JBPM4.4+Spring+EXT 整合详解】 JBPM(Java Business Process Management)是一个开源的工作流管理系统,主要用于处理业务流程自动化。版本4.4是JBPM的一个...这种整合方式在现代企业级应用中具有很高的实用价值。

    jbpm4 集成 spring 的试用代码

    同时,配置数据源、事务管理器等,确保jbpm4与Spring的事务管理能够协同工作。 2. **流程定义**:jbpm4使用BPMN 2.0标准来定义流程,这些定义通常以`.bpmn20.xml`文件存在。在Spring中,我们可以使用`jbpmDeployer`...

    jbpm4整合struts2+spring2.5+hibernate3.3

    **jbpm4整合struts2+spring2.5+hibernate3.3** 是一个经典的Java企业级应用集成框架,用于构建业务流程管理系统。jbpm4是Business Process Management(业务流程管理)的一个开源框架,它允许开发者设计、执行、监控...

    jbpm4.4 ibatis-spring 整合

    jbpm4.4 ibatis-spring 整合

    jbpm4.3-spring2.5整合

    jbpm4.3-spring2.5整合是一个关键的话题,涉及到企业级工作流管理系统Jbpm与Spring框架的集成。Jbpm是一个开源的工作流程管理(BPM)和业务规则管理系统,它允许开发者设计、执行、管理和监控业务流程。而Spring是...

    jbpm4整合struts2+spring2[1].5+hibernate3.3

    【jbpm4整合struts2+spring2.5+hibernate3.3】的知识点详解 jbpm4是一款开源的工作流管理系统,它允许开发者设计、执行和管理业务流程。在实际开发中,通常需要将其与其他流行的技术框架,如Struts2、Spring和...

    JBPM5 整合Spring3经典案例

    - `jbpm_03_for_ant部署.doc`:这个文档很可能是关于使用Ant构建工具来部署和运行JBPM5与Spring3整合应用的指南。Ant是Java项目常用的构建工具,可以编写XML配置文件来自动化编译、打包和部署过程。 - `jbpm_03_for_...

    jbpm4+spring+hibernate

    【jbpm4+spring+hibernate】是一个集成示例,展示了如何将业务流程管理工具Jbpm4与Spring框架和Hibernate ORM库协同工作。这个示例主要关注于在企业级应用中实现工作流管理和数据持久化。让我们深入探讨这三个技术...

    jbpm4与ssh整合

    【jbpm4与SSH整合详解】 在Java企业级开发中,Spring(SSH中的S)、Struts(H)和Hibernate(S)是常见的三大框架,它们分别负责依赖注入、MVC层处理和持久化操作。而jbpm4则是一个流程管理系统,用于业务流程的...

    jbpm5 spring3 整合实例

    在spring3中整合jbpm5的例子,前台用spring mvc3做了简单的页面。 其中用到了jbpm5的persistence,local human service等,简单、完整。 用的mysql数据库,修改下spring datasource的配置,然后用mvn jetty:run编译...

    Spring与JBPM4的集成.docx

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

Global site tag (gtag.js) - Google Analytics