在JBPM的Handle类中调用Spring管理的类
????? 我们在使用JBPM定义流程的时候经常要在流程定义文件中加入一个继承xxxHandler的类来实现我们的业务逻辑判断或者其他的需求,在这个类中一般都是用Spring的Application来获取,而这种情况每次都需要加载配置。
????? 假设使用的Handle类是RoleAssignmentHandler,需要注入的属性石UserService, 以下有几种解决办法:
?
?
1、在RoleAssignmentHandler中把UserService声明成static
?
?? 以下是这个方法的具体实施办法:
这里,由于springmodules跟jbpm4.4的集成有些问题,所以单独把JbpmFactoryLocator这个类拿了出来,修改一下相关类的引入就可以使用:
?
?
?把这个类配置成spring的bean:
?
?
??? 让RoleAssignmentHandler继承BaseAutowire即可:
?
public class RoleAssignmentHandler extends BaseAutowire implements AssignmentHandler {private static final long serialVersionUID = 1L;private UserService userService;public void assign(Assignable arg0, OpenExecution arg1) throws Exception {// TODO Auto-generated method stubuserService.getUserById("");//调用userService的方法} public ProcessEngine getProcessEngine() {return processEngine;}public void setProcessEngine(ProcessEngine processEngine) {this.processEngine = processEngine;}}??