feature #I4UPWG 模块架构调整,支持非Spring的项目使用

This commit is contained in:
bryan31
2022-02-22 14:33:56 +08:00
parent 714914687f
commit 0af4b97d9f
30 changed files with 69 additions and 70 deletions

View File

@@ -11,7 +11,7 @@ import com.yomahub.liteflow.exception.ExecutableItemNotFoundException;
import com.yomahub.liteflow.flow.FlowBus;
import com.yomahub.liteflow.parser.RegexEntity;
import com.yomahub.liteflow.parser.RegexNodeEntity;
import com.yomahub.liteflow.spi.factory.ContextAwareFactory;
import com.yomahub.liteflow.spi.holder.ContextAwareHolder;
import java.util.ArrayList;
@@ -88,7 +88,7 @@ public class LiteFlowConditionBuilder {
this.condition.getNodeList().add(chain);
} else {
//元数据没有的话从spring上下文再取一遍这部分是为了防止标有@Lazy懒加载的组件
NodeComponent nodeComponent = ContextAwareFactory.loadContextAware().getBean(item.getId());
NodeComponent nodeComponent = ContextAwareHolder.loadContextAware().getBean(item.getId());
if (ObjectUtil.isNotNull(nodeComponent)){
FlowBus.addSpringScanNode(item.getId(), nodeComponent);
return setValue(value);

View File

@@ -8,7 +8,7 @@ import com.yomahub.liteflow.entity.executor.NodeExecutor;
import com.yomahub.liteflow.enums.NodeTypeEnum;
import com.yomahub.liteflow.property.LiteflowConfig;
import com.yomahub.liteflow.property.LiteflowConfigGetter;
import com.yomahub.liteflow.spi.factory.LiteflowComponentSupportFactory;
import com.yomahub.liteflow.spi.holder.LiteflowComponentSupportHolder;
/**
* 组件初始化器
@@ -35,7 +35,7 @@ public class ComponentInitializer {
//@LiteflowComponent标注只在spring体系下生效这里用了spi机制取到相应环境下的实现类
nodeComponent.setName(desc);
if (nodeComponent.getType().equals(NodeTypeEnum.COMMON) && StrUtil.isBlank(nodeComponent.getName())){
String name = LiteflowComponentSupportFactory.loadLiteflowComponentSupport().getCmpName(nodeComponent);
String name = LiteflowComponentSupportHolder.loadLiteflowComponentSupport().getCmpName(nodeComponent);
nodeComponent.setName(name);
}

View File

@@ -18,7 +18,7 @@ import com.yomahub.liteflow.enums.FlowParserTypeEnum;
import com.yomahub.liteflow.exception.*;
import com.yomahub.liteflow.parser.*;
import com.yomahub.liteflow.property.LiteflowConfig;
import com.yomahub.liteflow.spi.factory.ContextAwareFactory;
import com.yomahub.liteflow.spi.holder.ContextAwareHolder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -175,11 +175,11 @@ public class FlowExecutor {
Class<?> c = Class.forName(path);
switch (pattern) {
case TYPE_XML:
return (XmlFlowParser) ContextAwareFactory.loadContextAware().registerBean(c);
return (XmlFlowParser) ContextAwareHolder.loadContextAware().registerBean(c);
case TYPE_JSON:
return (JsonFlowParser) ContextAwareFactory.loadContextAware().registerBean(c);
return (JsonFlowParser) ContextAwareHolder.loadContextAware().registerBean(c);
case TYPE_YML:
return (YmlFlowParser) ContextAwareFactory.loadContextAware().registerBean(c);
return (YmlFlowParser) ContextAwareHolder.loadContextAware().registerBean(c);
default:
}
} else if (isZKConfig(path)) {

View File

@@ -14,8 +14,8 @@ import com.alibaba.ttl.TransmittableThreadLocal;
import com.yomahub.liteflow.entity.executor.NodeExecutor;
import com.yomahub.liteflow.entity.executor.DefaultNodeExecutor;
import com.yomahub.liteflow.enums.NodeTypeEnum;
import com.yomahub.liteflow.spi.factory.CmpAroundAspectFactory;
import com.yomahub.liteflow.spi.factory.ContextAwareFactory;
import com.yomahub.liteflow.spi.holder.CmpAroundAspectHolder;
import com.yomahub.liteflow.spi.holder.ContextAwareHolder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -69,7 +69,7 @@ public abstract class NodeComponent{
private final TransmittableThreadLocal<Boolean> isEndTL = new TransmittableThreadLocal<>();
public NodeComponent() {
monitorBus = ContextAwareFactory.loadContextAware().getBean(MonitorBus.class);
monitorBus = ContextAwareHolder.loadContextAware().getBean(MonitorBus.class);
}
public void execute() throws Exception{
@@ -82,9 +82,9 @@ public abstract class NodeComponent{
//全局切面只在spring体系下生效这里用了spi机制取到相应环境下的实现类
//非spring环境下全局切面为空实现
CmpAroundAspectFactory.loadCmpAroundAspect().beforeProcess(this.getNodeId(), slot);
CmpAroundAspectHolder.loadCmpAroundAspect().beforeProcess(this.getNodeId(), slot);
self.process();
CmpAroundAspectFactory.loadCmpAroundAspect().afterProcess(this.getNodeId(), slot);
CmpAroundAspectHolder.loadCmpAroundAspect().afterProcess(this.getNodeId(), slot);
stopWatch.stop();

View File

@@ -2,7 +2,7 @@ package com.yomahub.liteflow.entity.executor;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.collect.Maps;
import com.yomahub.liteflow.spi.factory.ContextAwareFactory;
import com.yomahub.liteflow.spi.holder.ContextAwareHolder;
import java.util.Map;
@@ -41,7 +41,7 @@ public class NodeExecutorHelper {
// 此处无需使用同步锁进行同步-因为即使同时创建了两个实例,但是添加到缓存中的只会存在一个且不会存在并发问题-具体是由ConcurrentMap保证
if (ObjectUtil.isNull(nodeExecutor)) {
// 获取重试执行器实例
nodeExecutor = ContextAwareFactory.loadContextAware().registerBean(nodeExecutorClass);
nodeExecutor = ContextAwareHolder.loadContextAware().registerBean(nodeExecutorClass);
// 缓存
nodeExecutorMap.put(nodeExecutorClass, nodeExecutor);
}

View File

@@ -28,7 +28,7 @@ import com.yomahub.liteflow.parser.LocalYmlFlowParser;
import com.yomahub.liteflow.script.ScriptExecutor;
import com.yomahub.liteflow.script.ScriptExecutorFactory;
import com.yomahub.liteflow.script.exception.ScriptSpiException;
import com.yomahub.liteflow.spi.factory.ContextAwareFactory;
import com.yomahub.liteflow.spi.holder.ContextAwareHolder;
import com.yomahub.liteflow.util.CopyOnWriteHashMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -106,7 +106,7 @@ public class FlowBus {
//如果是script类型的节点因为class只有一个所以也不能注册进spring上下文注册的时候需要new Instance
NodeComponent cmpInstance = null;
if (!CollectionUtil.newArrayList(NodeTypeEnum.SCRIPT, NodeTypeEnum.COND_SCRIPT).contains(type)){
cmpInstance = ContextAwareFactory.loadContextAware().registerOrGet(nodeId, cmpClazz);
cmpInstance = ContextAwareHolder.loadContextAware().registerOrGet(nodeId, cmpClazz);
}
if (ObjectUtil.isNull(cmpInstance)) {

View File

@@ -16,7 +16,7 @@ import com.yomahub.liteflow.exception.EmptyConditionValueException;
import com.yomahub.liteflow.exception.NodeTypeNotSupportException;
import com.yomahub.liteflow.exception.NotSupportConditionException;
import com.yomahub.liteflow.flow.FlowBus;
import com.yomahub.liteflow.spi.factory.ContextCmpInitFactory;
import com.yomahub.liteflow.spi.holder.ContextCmpInitHolder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.*;
@@ -56,7 +56,7 @@ public abstract class JsonFlowParser implements FlowParser {
//在相应的环境下进行节点的初始化工作
//在spring体系下会获得spring扫描后的节点接入元数据
//在非spring体系下是一个空实现等于不做此步骤
ContextCmpInitFactory.loadContextCmpInit().initCmp();
ContextCmpInitHolder.loadContextCmpInit().initCmp();
//先在元数据里放上chain
//先放有一个好处可以在parse的时候先映射到FlowBus的chainMap然后再去解析

View File

@@ -1,6 +1,6 @@
package com.yomahub.liteflow.parser;
import com.yomahub.liteflow.spi.factory.PathContentParserFactory;
import com.yomahub.liteflow.spi.holder.PathContentParserHolder;
import java.util.List;
@@ -12,7 +12,7 @@ public class LocalJsonFlowParser extends JsonFlowParser{
@Override
public void parseMain(List<String> pathList) throws Exception {
List<String> contentList = PathContentParserFactory.loadContextAware().parseContent(pathList);
List<String> contentList = PathContentParserHolder.loadContextAware().parseContent(pathList);
parse(contentList);
}
}

View File

@@ -7,7 +7,7 @@
*/
package com.yomahub.liteflow.parser;
import com.yomahub.liteflow.spi.factory.PathContentParserFactory;
import com.yomahub.liteflow.spi.holder.PathContentParserHolder;
import java.util.List;
@@ -18,7 +18,7 @@ import java.util.List;
public class LocalXmlFlowParser extends XmlFlowParser{
public void parseMain(List<String> pathList) throws Exception {
List<String> contentList = PathContentParserFactory.loadContextAware().parseContent(pathList);
List<String> contentList = PathContentParserHolder.loadContextAware().parseContent(pathList);
parse(contentList);
}
}

View File

@@ -1,6 +1,6 @@
package com.yomahub.liteflow.parser;
import com.yomahub.liteflow.spi.factory.PathContentParserFactory;
import com.yomahub.liteflow.spi.holder.PathContentParserHolder;
import java.util.List;
@@ -14,7 +14,7 @@ public class LocalYmlFlowParser extends YmlFlowParser {
@Override
public void parseMain(List<String> pathList) throws Exception {
List<String> contentList = PathContentParserFactory.loadContextAware().parseContent(pathList);
List<String> contentList = PathContentParserHolder.loadContextAware().parseContent(pathList);
parse(contentList);
}

View File

@@ -11,7 +11,7 @@ import com.yomahub.liteflow.enums.ConditionTypeEnum;
import com.yomahub.liteflow.enums.NodeTypeEnum;
import com.yomahub.liteflow.exception.*;
import com.yomahub.liteflow.flow.FlowBus;
import com.yomahub.liteflow.spi.factory.ContextCmpInitFactory;
import com.yomahub.liteflow.spi.holder.ContextCmpInitHolder;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
@@ -49,7 +49,7 @@ public abstract class XmlFlowParser implements FlowParser {
//在相应的环境下进行节点的初始化工作
//在spring体系下会获得spring扫描后的节点接入元数据
//在非spring体系下是一个空实现等于不做此步骤
ContextCmpInitFactory.loadContextCmpInit().initCmp();
ContextCmpInitHolder.loadContextCmpInit().initCmp();
//先在元数据里放上chain
//先放有一个好处可以在parse的时候先映射到FlowBus的chainMap然后再去解析

View File

@@ -1,7 +1,7 @@
package com.yomahub.liteflow.property;
import cn.hutool.core.util.ObjectUtil;
import com.yomahub.liteflow.spi.factory.ContextAwareFactory;
import com.yomahub.liteflow.spi.holder.ContextAwareHolder;
/**
* liteflow的配置获取器
@@ -12,7 +12,7 @@ public class LiteflowConfigGetter {
public static LiteflowConfig get(){
if (ObjectUtil.isNull(liteflowConfig)){
liteflowConfig = ContextAwareFactory.loadContextAware().getBean(LiteflowConfig.class);
liteflowConfig = ContextAwareHolder.loadContextAware().getBean(LiteflowConfig.class);
//这里liteflowConfig不可能为null
//如果在springboot环境由于自动装配所以不可能为null
//在spring环境如果xml没配置在FlowExecutor的init时候就已经报错了

View File

@@ -1,12 +0,0 @@
package com.yomahub.liteflow.spi.factory;
public class SpiFactoryCleaner {
public static void clean(){
CmpAroundAspectFactory.clean();
ContextAwareFactory.clean();
ContextCmpInitFactory.clean();
LiteflowComponentSupportFactory.clean();
PathContentParserFactory.clean();
}
}

View File

@@ -1,4 +1,4 @@
package com.yomahub.liteflow.spi.factory;
package com.yomahub.liteflow.spi.holder;
import cn.hutool.core.util.ObjectUtil;
import com.yomahub.liteflow.spi.CmpAroundAspect;
@@ -13,7 +13,7 @@ import java.util.ServiceLoader;
* @author Bryan.Zhang
* @since 2.6.11
*/
public class CmpAroundAspectFactory {
public class CmpAroundAspectHolder {
private static CmpAroundAspect cmpAroundAspect;

View File

@@ -1,4 +1,4 @@
package com.yomahub.liteflow.spi.factory;
package com.yomahub.liteflow.spi.holder;
import cn.hutool.core.util.ObjectUtil;
import com.yomahub.liteflow.spi.ContextAware;
@@ -14,7 +14,7 @@ import java.util.ServiceLoader;
* @author Bryan.Zhang
* @since 2.6.11
*/
public class ContextAwareFactory {
public class ContextAwareHolder {
private static ContextAware contextAware;

View File

@@ -1,4 +1,4 @@
package com.yomahub.liteflow.spi.factory;
package com.yomahub.liteflow.spi.holder;
import cn.hutool.core.util.ObjectUtil;
import com.yomahub.liteflow.spi.ContextCmpInit;
@@ -13,7 +13,7 @@ import java.util.ServiceLoader;
* @author Bryan.Zhang
* @since 2.6.11
*/
public class ContextCmpInitFactory {
public class ContextCmpInitHolder {
private static ContextCmpInit contextCmpInit;

View File

@@ -1,4 +1,4 @@
package com.yomahub.liteflow.spi.factory;
package com.yomahub.liteflow.spi.holder;
import cn.hutool.core.util.ObjectUtil;
import com.yomahub.liteflow.spi.LiteflowComponentSupport;
@@ -12,7 +12,7 @@ import java.util.ServiceLoader;
* @author Bryan.Zhang
* @since 2.6.11
*/
public class LiteflowComponentSupportFactory {
public class LiteflowComponentSupportHolder {
private static LiteflowComponentSupport liteflowComponentSupport;

View File

@@ -1,7 +1,6 @@
package com.yomahub.liteflow.spi.factory;
package com.yomahub.liteflow.spi.holder;
import cn.hutool.core.util.ObjectUtil;
import com.yomahub.liteflow.spi.ContextAware;
import com.yomahub.liteflow.spi.PathContentParser;
import java.util.ArrayList;
@@ -9,7 +8,7 @@ import java.util.Comparator;
import java.util.List;
import java.util.ServiceLoader;
public class PathContentParserFactory {
public class PathContentParserHolder {
private static PathContentParser pathContentParser;

View File

@@ -0,0 +1,12 @@
package com.yomahub.liteflow.spi.holder;
public class SpiFactoryCleaner {
public static void clean(){
CmpAroundAspectHolder.clean();
ContextAwareHolder.clean();
ContextCmpInitHolder.clean();
LiteflowComponentSupportHolder.clean();
PathContentParserHolder.clean();
}
}

View File

@@ -1,6 +1,6 @@
package com.yomahub.liteflow.util;
import com.yomahub.liteflow.spi.factory.ContextAwareFactory;
import com.yomahub.liteflow.spi.holder.ContextAwareHolder;
import com.yomahub.liteflow.thread.ExecutorHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -19,7 +19,7 @@ public class LiteFlowExecutorPoolShutdown {
@PreDestroy
public void destroy() throws Exception {
ExecutorService executorService = ContextAwareFactory.loadContextAware().getBean("whenExecutors");
ExecutorService executorService = ContextAwareHolder.loadContextAware().getBean("whenExecutors");
LOG.info("Start closing the liteflow-when-calls...");
ExecutorHelper.loadInstance().shutdownAwaitTermination(executorService);

View File

@@ -2,7 +2,7 @@ package com.yomahub.liteflow.test;
import com.yomahub.liteflow.flow.FlowBus;
import com.yomahub.liteflow.property.LiteflowConfigGetter;
import com.yomahub.liteflow.spi.factory.SpiFactoryCleaner;
import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner;
import com.yomahub.liteflow.spring.ComponentScanner;
import com.yomahub.liteflow.thread.ExecutorHelper;
import org.junit.AfterClass;

View File

@@ -2,7 +2,7 @@ package com.yomahub.liteflow.test;
import com.yomahub.liteflow.flow.FlowBus;
import com.yomahub.liteflow.property.LiteflowConfigGetter;
import com.yomahub.liteflow.spi.factory.SpiFactoryCleaner;
import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner;
import com.yomahub.liteflow.spring.ComponentScanner;
import com.yomahub.liteflow.thread.ExecutorHelper;
import org.junit.AfterClass;

View File

@@ -2,7 +2,7 @@ package com.yomahub.liteflow.test;
import com.yomahub.liteflow.flow.FlowBus;
import com.yomahub.liteflow.property.LiteflowConfigGetter;
import com.yomahub.liteflow.spi.factory.SpiFactoryCleaner;
import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner;
import com.yomahub.liteflow.spring.ComponentScanner;
import com.yomahub.liteflow.thread.ExecutorHelper;
import org.junit.AfterClass;

View File

@@ -2,7 +2,7 @@ package com.yomahub.liteflow.test.customWhenThreadPool;
import cn.hutool.core.util.ObjectUtil;
import com.yomahub.liteflow.property.LiteflowConfig;
import com.yomahub.liteflow.spi.factory.ContextAwareFactory;
import com.yomahub.liteflow.spi.holder.ContextAwareHolder;
import com.yomahub.liteflow.thread.ExecutorBuilder;
import java.util.concurrent.*;
@@ -11,7 +11,7 @@ public class CustomThreadExecutor1 implements ExecutorBuilder {
@Override
public ExecutorService buildExecutor() {
LiteflowConfig liteflowConfig = ContextAwareFactory.loadContextAware().getBean(LiteflowConfig.class);
LiteflowConfig liteflowConfig = ContextAwareHolder.loadContextAware().getBean(LiteflowConfig.class);
//只有在非spring的场景下liteflowConfig才会为null
if (ObjectUtil.isNull(liteflowConfig)) {
liteflowConfig = new LiteflowConfig();

View File

@@ -2,7 +2,7 @@ package com.yomahub.liteflow.test.customWhenThreadPool;
import cn.hutool.core.util.ObjectUtil;
import com.yomahub.liteflow.property.LiteflowConfig;
import com.yomahub.liteflow.spi.factory.ContextAwareFactory;
import com.yomahub.liteflow.spi.holder.ContextAwareHolder;
import com.yomahub.liteflow.thread.ExecutorBuilder;
import java.util.concurrent.*;
@@ -10,7 +10,7 @@ import java.util.concurrent.*;
public class CustomThreadExecutor2 implements ExecutorBuilder {
@Override
public ExecutorService buildExecutor() {
LiteflowConfig liteflowConfig = ContextAwareFactory.loadContextAware().getBean(LiteflowConfig.class);
LiteflowConfig liteflowConfig = ContextAwareHolder.loadContextAware().getBean(LiteflowConfig.class);
//只有在非spring的场景下liteflowConfig才会为null
if (ObjectUtil.isNull(liteflowConfig)) {
liteflowConfig = new LiteflowConfig();

View File

@@ -2,7 +2,7 @@ package com.yomahub.liteflow.test.customWhenThreadPool;
import cn.hutool.core.util.ObjectUtil;
import com.yomahub.liteflow.property.LiteflowConfig;
import com.yomahub.liteflow.spi.factory.ContextAwareFactory;
import com.yomahub.liteflow.spi.holder.ContextAwareHolder;
import com.yomahub.liteflow.thread.ExecutorBuilder;
import java.util.concurrent.ExecutorService;
@@ -10,7 +10,7 @@ import java.util.concurrent.ExecutorService;
public class CustomThreadExecutor3 implements ExecutorBuilder {
@Override
public ExecutorService buildExecutor() {
LiteflowConfig liteflowConfig = ContextAwareFactory.loadContextAware().getBean(LiteflowConfig.class);
LiteflowConfig liteflowConfig = ContextAwareHolder.loadContextAware().getBean(LiteflowConfig.class);
//只有在非spring的场景下liteflowConfig才会为null
if (ObjectUtil.isNull(liteflowConfig)) {
liteflowConfig = new LiteflowConfig();

View File

@@ -2,7 +2,7 @@ package com.yomahub.liteflow.test;
import com.yomahub.liteflow.flow.FlowBus;
import com.yomahub.liteflow.property.LiteflowConfigGetter;
import com.yomahub.liteflow.spi.factory.SpiFactoryCleaner;
import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner;
import com.yomahub.liteflow.spring.ComponentScanner;
import com.yomahub.liteflow.thread.ExecutorHelper;
import org.junit.AfterClass;

View File

@@ -2,7 +2,7 @@ package com.yomahub.liteflow.test.customWhenThreadPool;
import cn.hutool.core.util.ObjectUtil;
import com.yomahub.liteflow.property.LiteflowConfig;
import com.yomahub.liteflow.spi.factory.ContextAwareFactory;
import com.yomahub.liteflow.spi.holder.ContextAwareHolder;
import com.yomahub.liteflow.thread.ExecutorBuilder;
import java.util.concurrent.ExecutorService;
@@ -11,7 +11,7 @@ public class CustomThreadExecutor1 implements ExecutorBuilder {
@Override
public ExecutorService buildExecutor() {
LiteflowConfig liteflowConfig = ContextAwareFactory.loadContextAware().getBean(LiteflowConfig.class);
LiteflowConfig liteflowConfig = ContextAwareHolder.loadContextAware().getBean(LiteflowConfig.class);
//只有在非spring的场景下liteflowConfig才会为null
if (ObjectUtil.isNull(liteflowConfig)) {
liteflowConfig = new LiteflowConfig();

View File

@@ -2,7 +2,7 @@ package com.yomahub.liteflow.test.customWhenThreadPool;
import cn.hutool.core.util.ObjectUtil;
import com.yomahub.liteflow.property.LiteflowConfig;
import com.yomahub.liteflow.spi.factory.ContextAwareFactory;
import com.yomahub.liteflow.spi.holder.ContextAwareHolder;
import com.yomahub.liteflow.thread.ExecutorBuilder;
import java.util.concurrent.ExecutorService;
@@ -10,7 +10,7 @@ import java.util.concurrent.ExecutorService;
public class CustomThreadExecutor2 implements ExecutorBuilder {
@Override
public ExecutorService buildExecutor() {
LiteflowConfig liteflowConfig = ContextAwareFactory.loadContextAware().getBean(LiteflowConfig.class);
LiteflowConfig liteflowConfig = ContextAwareHolder.loadContextAware().getBean(LiteflowConfig.class);
//只有在非spring的场景下liteflowConfig才会为null
if (ObjectUtil.isNull(liteflowConfig)) {
liteflowConfig = new LiteflowConfig();

View File

@@ -2,7 +2,7 @@ package com.yomahub.liteflow.test.customWhenThreadPool;
import cn.hutool.core.util.ObjectUtil;
import com.yomahub.liteflow.property.LiteflowConfig;
import com.yomahub.liteflow.spi.factory.ContextAwareFactory;
import com.yomahub.liteflow.spi.holder.ContextAwareHolder;
import com.yomahub.liteflow.thread.ExecutorBuilder;
import java.util.concurrent.ExecutorService;
@@ -10,7 +10,7 @@ import java.util.concurrent.ExecutorService;
public class CustomThreadExecutor3 implements ExecutorBuilder {
@Override
public ExecutorService buildExecutor() {
LiteflowConfig liteflowConfig = ContextAwareFactory.loadContextAware().getBean(LiteflowConfig.class);
LiteflowConfig liteflowConfig = ContextAwareHolder.loadContextAware().getBean(LiteflowConfig.class);
//只有在非spring的场景下liteflowConfig才会为null
if (ObjectUtil.isNull(liteflowConfig)) {
liteflowConfig = new LiteflowConfig();