Context是什么?有什么用?
Context即上下文,用来保存Activiti运行过程中的全局变量、声明周期很长的对象。如命令执行器、流程配置对象等。
Context里保存了哪些对象?
看org.activiti.engine.impl.context.Context类的源码
protected static ThreadLocal<Stack<CommandContext>> commandContextThreadLocal = new ThreadLocal<Stack<CommandContext>>();
protected static ThreadLocal<Stack<ProcessEngineConfigurationImpl>> processEngineConfigurationStackThreadLocal = new ThreadLocal<Stack<ProcessEngineConfigurationImpl>>();
protected static ThreadLocal<Stack<ExecutionContext>> executionContextStackThreadLocal = new ThreadLocal<Stack<ExecutionContext>>();
protected static ThreadLocal<JobExecutorContext> jobExecutorContextThreadLocal = new ThreadLocal<JobExecutorContext>();
含有四个线程变量,储存栈对象。可以猜测出这四个变量就是当前线程的局部便量,供当前线程全局访问。
分别看下这四个变量都是什么?
1.commnadContextThreadLocal:命令上下文线程变量
2.processEngineConfigurationStackThreadLocal:流程引擎配置线程变量
3.executionContextStackThreadLocal:流程执行器上下文线程变量
4.jobExecutorContextThreadLocal: