`

jbpm中各种handler如何使用spring里面的bean方法02

 
阅读更多

这是对上一篇的同样问题的更好的方法:

 

package cn.edu.hbmy.oa.manager.impl;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.access.BeanFactoryLocator;
import org.springframework.beans.factory.access.BeanFactoryReference;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springmodules.workflow.jbpm31.JbpmFactoryLocator;

public class BaseAutowire {

	
	public BaseAutowire() {
		((AutowireCapableBeanFactory)retrieveBeanFactory())
				.autowireBeanProperties(this,
						AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE,true);
	}

	protected BeanFactory retrieveBeanFactory(){
		
		BeanFactoryLocator beanFactoryLocator = new JbpmFactoryLocator();
		BeanFactoryReference beanFactoryReference = beanFactoryLocator.useBeanFactory(null);
		BeanFactory beanFactory = beanFactoryReference.getFactory();
		
		return beanFactory;
	}
}

 

 <?xml version="1.0" encoding="UTF-8"?>

<process-definition
  xmlns="urn:jbpm.org:jpdl-3.2"  name="assignmentHandler5">
   <start-state name="开始">
      <transition name="提价给角色" to="角色审批"></transition>
   </start-state>
   <task-node name="角色审批">
   		<task name="角色审批">
   			<assignment  class="cn.edu.hbmy.oa.manager.handler.MyAssignmentHandler5">
   				 <roleName>系统管理员</roleName>
   			</assignment>
   		</task>
      <transition name="角色审批完成" to="完成"></transition>
   </task-node>
   <end-state name="完成"></end-state>
</process-definition>
 

 

public class MyAssignmentHandler5 extends BaseAutowire implements AssignmentHandler {
	private String roleName; //jbpm来注入
	
	@Override
	public void assign(Assignable assignable, ExecutionContext executionContext) throws Exception {

		if(roleName == null){
			throw new RuntimeException("角色名称不可以是空");
		}
		UserManager userManager = (UserManager)retrieveBeanFactory().getBean("userManager");  //获取sprig管理的bean
		List<?> rolesName =  userManager.searchUserOfRole(roleName);
		
		
		if(rolesName.isEmpty()){
			throw new RuntimeException("角色[" + roleName+ "]还没有被分配给用户");
		}
		
		String[] role_name = rolesName.toArray(new String[rolesName.size()]);
		assignable.setPooledActors(role_name); //将角色下面的用户设置未流程实例的审批人
	}
 

}
 

这个方法可以不需要再spring的配置文件中添加什么了,而且比上一篇的方法好.

分享到:
评论

相关推荐

    JBPM使用实例,sql spring

    2. **项目源代码(全,不含jar包).rar**:这可能是一个完整的JBPM项目源代码,包含了流程定义、服务实现、配置文件等,用于展示如何在实际项目中使用JBPM和Spring进行流程管理。 3. **sql.rar**:这个压缩包可能...

    jbpm+spring配置

    1. **引入依赖**:首先,要在Spring应用中使用jbpm,你需要在项目中引入jbpm的相关库,包括jbpm的jar包和Spring对jbpm的支持库。这通常通过Maven或Gradle的依赖管理来实现。 2. **配置jbpm数据源**:jbpm需要一个...

    jbpm4.3与spring整合

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

    jBPM4与Spring整合的2种方式

    1. **事务边界**:在Spring中,确保jBPM4的操作与数据库操作处于同一事务范围内,以保证数据一致性。 2. **日志和异常处理**:利用Spring的日志管理和AOP切面,对jBPM4的异常进行统一处理,提高系统的健壮性。 3. **...

    JBPM4.3 Spring会签 实例

    首先,我们需要在Spring配置文件中定义JBPM的相关bean,包括流程引擎、工作内存、流程定义仓库等。这些bean是Spring与JBPM交互的基础,通过它们可以启动流程实例、执行任务以及查询流程状态。 其次,创建流程定义...

    jbpm4 集成 spring 的试用代码

    在Spring中,我们可以使用`jbpmDeployer` bean来部署这些流程定义文件。 3. **任务服务**:集成后,我们可以通过Spring的`JbpmTaskService`来操作任务,例如查询任务、领取任务、完成任务等。 4. **流程实例管理**...

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

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

    spring与JBPM整合ppt

    标题中的“spring与JBPM整合ppt”指的是将Spring框架与JBPM(Business Process Management,业务流程管理)系统相结合,以实现更加高效、灵活的企业级应用流程管理。在本PPT中,我们预计会探讨以下几个核心知识点: ...

    Jbpm4.4 整合Spring Hibernate4

    Jbpm4.4整合Spring Hibernate4后,适用于各种需要业务流程管理的场景,如审批流程、订单处理、客户服务等。通过这种整合,开发者可以快速构建出具有强大流程管理能力的应用,并且能方便地与其他Spring生态中的组件...

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

    在Spring中配置jbpm4,主要涉及以下几点: 1. 配置jbpm的数据源,使其与Hibernate共用,以确保事务的一致性。 2. 注册jbpm的SessionFactory,使Spring能够管理SessionFactory的生命周期。 3. 配置jbpm的JobExecutor...

    jbpm5.4 spring mvc 集成

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

    jbpm 整合到现有的spring+hibernate系统

    4. **bsh.jar**:BeanShell脚本引擎,允许在流程定义中使用简单的脚本来控制流程走向或进行数据处理。 #### 四、Spring配置 接下来是Spring配置方面的内容。这部分内容展示了Spring如何配置事务管理器和Hibernate...

    jbpm4.4 ibatis-spring 整合

    jbpm4.4 ibatis-spring 整合

    JBPM环境搭建步骤+spring+mybatis

    文档是原创,本人从网络上获取了前辈很多知识,觉着有义务反馈给网络,如果觉着文档没用或资源分要的太多,请不要乱喷,毕竟西辛辛苦苦占用工作时间写的,并不是要那点分,只不过想体现一下文档的价值

    JBPM4.4+spring+ext整合

    Spring框架则是Java开发中的核心组件,用于依赖注入和管理bean,它在企业级应用中广泛使用。EXT是基于JavaScript的UI库,主要用于创建富客户端应用程序。当将这三者结合在一起时,可以构建出功能强大且用户友好的...

    jbpm4.3-spring2.5整合

    Jbpm的库文件(如jbpm-jpdl.jar, jbpm-runtime.jar等)需要添加到项目的类路径中,同时Spring的相关库(如spring-core.jar, spring-context.jar, spring-tx.jar等)也不能少。 整合步骤通常包括以下部分: 1. **...

    jbpm4.0实例(整合spring2.5+ext3.0+hibernate)

    jbpm4.0实例(整合spring2.5+ext3.0+hibernate)

    提前试用spring 集成 jbpm4

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

    jbpm与spring集成

    5. **流程启动与控制**:Spring中可以通过jbpm的流程服务接口启动新的流程实例,参与到流程的执行中。例如,调用`RuntimeEngine`的`startProcessInstanceByKey()`方法启动流程,`TaskService`的`claim()`和`complete...

Global site tag (gtag.js) - Google Analytics