编程方式整合Spring和Activiti

jopen 8年前

1、配置并注入org.activiti.spring.SpringProcessEngineConfiguration,通过它设置一系列参数:

@Bean   public SpringProcessEngineConfiguration processEngineConfiguration(){    SpringProcessEngineConfiguration processEngineConfiguration = new SpringProcessEngineConfiguration();    processEngineConfiguration.setDataSource(this.dataSource);    processEngineConfiguration.setTransactionManager(this.jpaTransactionManager());    processEngineConfiguration.setDatabaseSchemaUpdate("true");    Resource resource = new ClassPathResource("com/sfauto/config/leave.zip");    processEngineConfiguration.setDeploymentResources(new Resource[]{resource});    return processEngineConfiguration;   }



注意 setDeployResources方法,通过它可以自动部署流程(如果已部署过就不部署)。

2、注入ProcessEngineFactoryBean

@Bean   public ProcessEngineFactoryBean processEngineFactory(){    ProcessEngineFactoryBean processEngineFactory = new ProcessEngineFactoryBean();    processEngineFactory.setProcessEngineConfiguration(this.processEngineConfiguration());    return processEngineFactory;   }



3、通过processEngineFactory注入activiti的各类service

@Bean   public RepositoryService repositoryService() throws Exception{    return this.processEngineFactory.getObject().getRepositoryService();   }      @Bean   public RuntimeService runtimeService() throws Exception{    return this.processEngineFactory.getObject().getRuntimeService();   }      @Bean   public FormService formService() throws Exception{    return this.processEngineFactory.getObject().getFormService();   }      @Bean   public IdentityService identityService() throws Exception{    return this.processEngineFactory.getObject().getIdentityService();   }      @Bean   public TaskService taskService() throws Exception{    return this.processEngineFactory.getObject().getTaskService();   }      @Bean   public HistoryService historyService() throws Exception{    return this.processEngineFactory.getObject().getHistoryService();   }      @Bean   public ManagementService managementService() throws Exception{    return this.processEngineFactory.getObject().getManagementService();   }



来自: http://my.oschina.net/u/2453016/blog/601915