这是对上一篇的同样问题的更好的方法:
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的配置文件中添加什么了,而且比上一篇的方法好.
分享到:
相关推荐
2. **项目源代码(全,不含jar包).rar**:这可能是一个完整的JBPM项目源代码,包含了流程定义、服务实现、配置文件等,用于展示如何在实际项目中使用JBPM和Spring进行流程管理。 3. **sql.rar**:这个压缩包可能...
1. **引入依赖**:首先,要在Spring应用中使用jbpm,你需要在项目中引入jbpm的相关库,包括jbpm的jar包和Spring对jbpm的支持库。这通常通过Maven或Gradle的依赖管理来实现。 2. **配置jbpm数据源**:jbpm需要一个...
在企业级应用开发中,流程管理引擎JBPM(JBoss Business Process Management)与Spring框架的结合使用是常见的一种技术方案。JBPM是一个灵活、强大的业务流程管理工具,而Spring框架则以其优秀的依赖注入(DI)和...
1. **事务边界**:在Spring中,确保jBPM4的操作与数据库操作处于同一事务范围内,以保证数据一致性。 2. **日志和异常处理**:利用Spring的日志管理和AOP切面,对jBPM4的异常进行统一处理,提高系统的健壮性。 3. **...
首先,我们需要在Spring配置文件中定义JBPM的相关bean,包括流程引擎、工作内存、流程定义仓库等。这些bean是Spring与JBPM交互的基础,通过它们可以启动流程实例、执行任务以及查询流程状态。 其次,创建流程定义...
在Spring中,我们可以使用`jbpmDeployer` bean来部署这些流程定义文件。 3. **任务服务**:集成后,我们可以通过Spring的`JbpmTaskService`来操作任务,例如查询任务、领取任务、完成任务等。 4. **流程实例管理**...
8. **spring-modules-jbpm31.jar**:这个 JAR 文件很可能是 Spring 与 JBPM 3.1 版本的集成组件,包含了必要的桥接和适配器类,以便于在 Spring 环境中使用 JBPM。 9. **readme.txt**:这个文件通常包含集成指南、...
标题中的“spring与JBPM整合ppt”指的是将Spring框架与JBPM(Business Process Management,业务流程管理)系统相结合,以实现更加高效、灵活的企业级应用流程管理。在本PPT中,我们预计会探讨以下几个核心知识点: ...
Jbpm4.4整合Spring Hibernate4后,适用于各种需要业务流程管理的场景,如审批流程、订单处理、客户服务等。通过这种整合,开发者可以快速构建出具有强大流程管理能力的应用,并且能方便地与其他Spring生态中的组件...
在Spring中配置jbpm4,主要涉及以下几点: 1. 配置jbpm的数据源,使其与Hibernate共用,以确保事务的一致性。 2. 注册jbpm的SessionFactory,使Spring能够管理SessionFactory的生命周期。 3. 配置jbpm的JobExecutor...
jbpm5.4与Spring MVC的集成是企业级应用开发中的常见组合,它结合了jbpm(业务流程管理)的强大功能和Spring MVC的灵活控制层架构。以下将详细阐述这一集成涉及的关键知识点: 1. **jbpm5.4**:jbpm是一个开源的...
4. **bsh.jar**:BeanShell脚本引擎,允许在流程定义中使用简单的脚本来控制流程走向或进行数据处理。 #### 四、Spring配置 接下来是Spring配置方面的内容。这部分内容展示了Spring如何配置事务管理器和Hibernate...
jbpm4.4 ibatis-spring 整合
文档是原创,本人从网络上获取了前辈很多知识,觉着有义务反馈给网络,如果觉着文档没用或资源分要的太多,请不要乱喷,毕竟西辛辛苦苦占用工作时间写的,并不是要那点分,只不过想体现一下文档的价值
Spring框架则是Java开发中的核心组件,用于依赖注入和管理bean,它在企业级应用中广泛使用。EXT是基于JavaScript的UI库,主要用于创建富客户端应用程序。当将这三者结合在一起时,可以构建出功能强大且用户友好的...
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集成到Spring中,可以实现灵活的业务流程自动化,提高开发效率。 在"提前试用spring 集成 jbpm4"这个主题中,我们主要关注的是如何将这两个强大的工具结合在一起,以实现更高效、更灵活的业务流程控制。首先...
5. **流程启动与控制**:Spring中可以通过jbpm的流程服务接口启动新的流程实例,参与到流程的执行中。例如,调用`RuntimeEngine`的`startProcessInstanceByKey()`方法启动流程,`TaskService`的`claim()`和`complete...