JBPM 和 Spring 的结合
2008-10-11 21:34
第一步:将JBPM的配置写入HIbernate,生成相应的表 * 拷贝相关的依赖包到WEB-INF/lib下面(bsh.jar/ jcr-1.0.jar/ jbpm-identity.jar/ jbpm-jpdl.jar) * 修改hibernate.cfg.xml,添加JBPM的映射配置,以及缓存属性的配置
<property name="mappingLocations"> <value>classpath*:/org/jbpm/**/*.hbm.xml</value> </property>
第二步:与Spring集成 * 集成JBPM与spring,需要用到第三方的集成包:spring-modules-0.8.zip * 将其中的spring-modules-jbpm31.jar拷贝到WEB-INF/lib下面即可 * 集成JBPM与Spring的方法是:将JbpmConfiguration对象的创建交给Spring来完成 * 所以,需要在spring配置文件中配置JbpmConfiguration对象的创建 <!-- 配置JbmpConfiguration --> <bean id="jbpmConfiguration" class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean"> <property name="configuration" value="classpath:jbpm.cfg.xml"></property> </bean> * 这时候,需要jbpm.cfg.xml,这是JBPM的配置文件,我们可以从: JBPM_HOME\src\jpdl\org\jbpm目录下拷贝default.jbpm.cfg.xml文件, 并重新命名为jbpm.cfg.xml
第三步:如何实现业务逻辑类
* 用到jbpmConfiguration对象的时候,需要注入 (<property name="jbpmConfiguration" ref="jbpmConfiguration"></property>) * 当我们使用JbpmContext对象来操纵JBPM的时候,需要将JbpmContext的HibernateSession对象设置为当前的HibernateSession对象 private JbpmContext getContext(){ JbpmContext context = jbpmConfiguration.createJbpmContext(); context.setSession(getSession()); return context; }
|
<!-- JBPM Hibernate SessionFactory -->
<bean id="jbpmSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mappingLocations">
<value>classpath*:/org/jbpm/**/*.hbm.xml</value>
</property>
</bean>
<bean id="jbpmConfiguration"
class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
<property name="configuration" value="classpath:jbpm.cfg.xml"></property>
<property name="sessionFactory" ref="jbpmSessionFactory" />
<property name="processDefinitions">
<list>
<ref local="qingjia" />
</list>
</property>
<property name="createSchema" value="false" />
</bean>
<bean id="qingjia" class="org.springmodules.workflow.jbpm31.definition.ProcessDefinitionFactoryBean">
<property name="definitionLocation" value="file:${oa_application.config}/qingjia/processdefinition.xml"/>
</bean>
附:
<!-- jbpm 3.2.6 -->
<property name="mappingLocations">
<value>classpath*:/org/jbpm/**/*.hbm.xml</value>
</property>
<property name="typeDefinitions">
<ref bean="jbpmTypes" />
</property>
<bean id="jbpmTypes"
class="org.springframework.orm.hibernate3.TypeDefinitionBean">
<property name="typeName" value="string_max" />
<property name="typeClass"
value="org.jbpm.db.hibernate.StringMax" />
</bean>
<!-- jbpm 3.2.6.sp1 -->
<import resource="file:${oa_application.config}/cn/firstsoft/firstframe/plugins/jbpm/applicationContext-jbpm.xml"/>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
<!-- JBPM 3.2.6.SP1 -->
<bean id="jbpmConfiguration"
class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
<property name="sessionFactory" ref="sessionFactory" />
<property name="configuration"
value="file:${oa_application.config}/conf/jbpm.cfg.xml" />
<!--
<property name="createSchema" value="false"/>
-->
<!-- unused, it can be deploy false, deploy success, then set it -->
<!--
<property name="processDefinitions"> <list> <ref
local="testProcess"/> </list> </property>
-->
</bean>
<bean id="jbpmTemplate" class="org.springmodules.workflow.jbpm31.JbpmTemplate">
<property name="jbpmConfiguration" ref="jbpmConfiguration" />
</bean>
<!-- 动态分配任务的处理,利用node-enter事件
<bean id="jbpmProcessDao" class="cn.firstsoft.firstframe.plugins.jbpm.JbpmProcessDao">
<property name="template" ref="jbpmTemplate" />
</bean>
<bean id="nodeEnterActionHandler" parent="baseTxService">
<property name="target">
<bean
class="cn.firstsoft.modules.workflow.service.handler.NodeEnterActionHandler" />
</property>
</bean>
<bean id="endNodeEnterActionHandler" parent="baseTxService">
<property name="target">
<bean
class="cn.firstsoft.modules.workflow.service.handler.EndNodeEnterActionHandler" />
</property>
</bean>
<bean id="taskEndCountersignActionHandler" parent="baseTxService">
<property name="target">
<bean
class="cn.firstsoft.modules.workflow.service.handler.TaskEndCountersignActionHandler" />
</property>
</bean>
-->
</beans>
分享到:
相关推荐
当将JBPM与Spring结合时,可以充分利用Spring的特性来管理JBPM的工作流实例,提高系统的可维护性和可扩展性。 在这个实例中,我们将探讨如何在JBPM4.3中实现基于Spring的会签功能。会签是一种常见的业务流程操作,...
【jbpm+spring配置】是将业务流程管理(Business Process Management, BPM)框架jbpm与企业级应用开发框架Spring相结合的实践。jbpm是一个开源的BPM解决方案,它提供了流程定义、执行、监控和管理的一整套工具。而...
jbpm5.4与Spring MVC的集成是企业级应用开发中的常见组合,它结合了jbpm(业务流程管理)的强大功能和Spring MVC的灵活控制层架构。以下将详细阐述这一集成涉及的关键知识点: 1. **jbpm5.4**:jbpm是一个开源的...
在企业级应用开发中,流程管理引擎JBPM(JBoss Business Process Management)与Spring框架的结合使用是常见的一种技术方案。JBPM是一个灵活、强大的业务流程管理工具,而Spring框架则以其优秀的依赖注入(DI)和...
当jbPM与Spring结合时,可以实现业务流程与应用服务的无缝集成,提供强大的工作流支持。 本项目是基于jbPM和Spring构建的一个简单的Web借款工作流实例,旨在帮助开发者理解如何在实际项目中运用这两项技术。数据库...
【jbpm与Spring集成】是企业级应用中常见的技术整合,旨在利用jbpm(Java Business Process Management)的流程管理能力,结合Spring框架的灵活服务管理,实现高效、可扩展的业务流程自动化。jbpm是一个开源的工作流...
将JBPM5与Spring结合,可以充分利用Spring的优秀特性,提高JBPM5应用的开发效率和可维护性。 首先,我们来看一下如何在Spring中配置JBPM5。在`JBPM5Spring`项目中,通常会有一个`spring-context.xml`配置文件,这里...
6. **安全控制**:结合Spring Security或自定义权限管理,控制用户对工作流的访问和操作权限。 在实际开发中,可能会遇到的问题包括版本兼容性、事务同步、异常处理、性能优化等。解决这些问题通常需要深入理解JBPM...
- **集成意义**:结合JBPM的工作流引擎能力和Spring的灵活性,构建高效、可维护的业务流程管理系统。 - **集成要点**:包括Spring的依赖注入来管理JBPM组件,使用Spring的AOP支持工作流的事务管理,以及利用Spring...
总结起来,JBPM3.2与Spring的结合主要涉及到以下几个关键点: 1. 使用`spring-modules-jbpm31.jar`进行集成。 2. 在`web.xml`中配置`JobExecutorServlet`。 3. 将任务调度的相关配置移到`jbpm.cfg.xml`。 4. 调整`...
10. **国际化与本地化**:Spring提供了丰富的国际化支持,可以结合jbpm4的流程定义,实现多语言的流程任务名称和提示信息。 总的来说,jbpm4与Spring的集成可以提高流程管理的灵活性和可扩展性,使得开发者能够更好...
这个项目是一个整合了jbpm(Java Business Process Management)、Spring框架和Struts框架的典型企业级应用。jbpm是用于业务流程管理的开源工具,Spring则提供了全面的后端服务管理,而Struts则是前端MVC(Model-...
【JBPM与Spring集成开发】是企业信息化管理中的一项关键技术,它涉及到工作流管理系统与Spring框架的结合,以实现高效、灵活的业务流程自动化。JBPM是一个知名的开源工作流引擎,它允许开发者定义、执行和管理工作...
Jbpm4.4是一个流程管理系统,它结合了业务流程管理(BPM)和工作流服务,提供了强大的流程定义、执行和监控能力。在这个版本中,Jbpm与Spring框架和Hibernate ORM工具进行了整合,实现了更加灵活和高效的企业级应用...
通过上述文件,你可以学习到如何将JBPM、Spring和SQL结合,实现一个完整的业务流程管理系统。首先,你需要了解Spring环境下的配置,包括Spring与JBPM的集成方式。然后,你需要熟悉JBPM的流程定义语言和工具,创建...
总的来说,jbpm4.3-spring2.5整合是一项复杂但重要的任务,它将灵活的工作流管理与强大的应用框架结合在一起,为开发者提供了构建高效、可扩展的企业级应用的工具。在实践中,需要对Jbpm的工作原理、Spring的IoC和...
- **事务管理**:Spring的事务管理器可以与JBPM的事务管理相结合,确保流程操作的原子性和一致性。 - **AOP集成**:Spring的AOP可以在流程执行的关键点添加拦截器,实现日志记录、权限检查等功能。 - **Bean管理**:...
将JBPM4与Spring进行整合,可以充分利用Spring的灵活性和JBPM4的流程管理能力,构建高效且可扩展的OA(Office Automation)工作流系统。 在"风中叶老师讲的JBPM4与Spring整合例子代码"中,我们可以了解到如何将这两...
通过这种结合,开发者可以构建出具有强大流程控制能力的企业级应用,既能利用SSH的灵活性和效率,又能享受到jbPM带来的业务流程自动化优势。这种集成方案在实际的项目开发中有着广泛的应用,特别是在金融、政务、...
2. **配置jbpmContext**:创建一个jbpmContext的bean,它会自动配置jBPM4所需的服务,并与Spring的bean管理相结合。 3. **使用JBPM4Template**:Spring-JBPM4提供了JBPM4Template类,它可以简化与jBPM4的交互,如...