工作流activiti入门(五):流程引擎的创建

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"));
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值