通过学习XXL-JOB也是看到了很多以前自己没有注意到的Java基础知识或者Spring框架的知识点,当前只是整理了下面两个点,后续如果在学习XXL-JOB框架有其他学到的点也会汇总到这个地方。
1. InheritableThreadLocal的使用
/**
* xxl-job context
*
* @author xuxueli 2020-05-21
* [Dear hj]
*/
public class XxlJobContext {
.........
.........
private static InheritableThreadLocal<XxlJobContext> contextHolder = new InheritableThreadLocal<XxlJobContext>(); // support for child thread of job handler)
public static void setXxlJobContext(XxlJobContext xxlJobContext){
contextHolder.set(xxlJobContext);
}
public static XxlJobContext getXxlJobContext(){
return contextHolder.get();
}
}
XXL-JOB中的XxlJobContext 使用了InheritableThreadLocal,关于ThreadLocal的使用以及原理,可以参考如下博客: