1、流程引擎创建的方式
/**
* @description 使用流程引擎工具类创建流程引擎
*/
private static void buildProcessEngineByMap() {
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
System.out.println(engine.getName());
}
/**
* @description 使用流程引擎的配置(ProcessEngineConfiguration)创建流程引擎(ProcessEngine)
*/
private static void buildProcessEngineByConfig() {
ProcessEngineConfiguration config = ProcessEngineConfiguration
.createProcessEngineConfigurationFromResourceDefault();
ProcessEngine engine = config.buildProcessEngine();
System.out.println(engine.getName());
}
2、流程引擎的生命周期
private static void destroyEngine() {
Map<String, ProcessEngine> engines = ProcessEngines.getProcessEngines();
System.out.println("调用getDefaultProcessEngine方法后引擎数量:" + engines.size());
// 调用销毁方法
ProcessEngines.destroy();
// 最终结果为0
System.out.println("调用destroy方法后引擎数量:" + engines.size());
// 得到资源文件的URL实例
ClassLoader cl = ProcessEngineLifeCycle.class.getClassLoader();
URL url = cl.getResource("activiti.cfg.xml");
// 调用retry方法创建ProcessEngine实例
ProcessEngines.retry(url.toString());
System.out.println("只调用 retry方法后引擎数量:" + engines.size());
// 调用销毁方法,没有效果
ProcessEngines.destroy();
System.out.println("调用destory无效果,引擎数量:" + engines.size());
}
private static void closeEngine() {
// 读取配置
ProcessEngineConfiguration config = ProcessEngineConfiguration
.createProcessEngineConfigurationFromResourceDefault();
// 创建流程引擎
ProcessEngine engine = config.buildProcessEngine();
System.out.println("完成流程引擎创建");
// 执行close方法
engine.close();
}
private static void retryEngine() {
// 得到资源文件的URL实例
ClassLoader cl = ProcessEngineLifeCycle.class.getClassLoader();
URL url = cl.getResource("activiti.cfg.xml");
// 调用retry方法创建ProcessEngine实例
ProcessEngines.retry(url.toString());
// 得到流程实例保存对象
Map<String, ProcessEngine> engines = ProcessEngines.getProcessEngines();
System.out.println("调用retry方法后引擎数:" + engines.size());
}
private static void engineService() {
// 读取流程引擎配置
ProcessEngineConfiguration config = ProcessEngineConfiguration
.createProcessEngineConfigurationFromResourceDefault();
// 创建流程引擎
ProcessEngine engine = config.buildProcessEngine();
// 得到各个业务组件实例
RepositoryService repositoryService = engine.getRepositoryService();
RuntimeService runtimeService = engine.getRuntimeService();
TaskService taskService = engine.getTaskService();
IdentityService identityService = engine.getIdentityService();
ManagementService managementService = engine.getManagementService();
HistoryService historyService = engine.getHistoryService();
DynamicBpmnService dynamicBpmnService = engine.getDynamicBpmnService();
// 输入类名
System.out.println(repositoryService.getClass().getName());
System.out.println(runtimeService.getClass().getName());
System.out.println(taskService.getClass().getName());
System.out.println(identityService.getClass().getName());
System.out.println(managementService.getClass().getName());
System.out.println(historyService.getClass().getName());
System.out.println(dynamicBpmnService.getClass().getName());
}
private static void registerEngine() {
// 读取配置
ProcessEngineConfiguration config = ProcessEngineConfiguration
.createProcessEngineConfigurationFromResourceDefault();
// 创建ProcessEngine实例
ProcessEngine engine = config.buildProcessEngine();
// 获取ProcessEngine的Map
Map<String, ProcessEngine> engines = ProcessEngines.getProcessEngines();
System.out.println("注册后引擎数:" + engines.size());
// 注销ProcessEngine实例
ProcessEngines.unregister(engine);
System.out.println("调用unregister后引擎数:" + engines.size());
}
private static void initEngine() {
// 初始化ProcessEngines的Map,
// 再加载Activiti默认的配置文件(classpath下的activiti.cfg.xml文件)
// 如果与Spring整合,则读取classpath下的activiti-context.xml文件
ProcessEngines.init();
// 得到ProcessEngines的Map
Map<String, ProcessEngine> engines = ProcessEngines.getProcessEngines();
System.out.println(engines.size());
System.out.println(engines.get("default"));
}