diff --git a/liteflow-core/pom.xml b/liteflow-core/pom.xml
new file mode 100644
index 000000000..27f1febce
--- /dev/null
+++ b/liteflow-core/pom.xml
@@ -0,0 +1,88 @@
+
+
+ com.thebeastshop
+ liteflow-core
+ jar
+ 4.0.0
+ 2.1.0
+
+
+ com.thebeastshop
+ liteflow
+ 2.1.0
+
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+ org.apache.commons
+ commons-collections4
+
+
+ commons-io
+ commons-io
+
+
+ org.springframework
+ spring-beans
+
+
+ org.springframework
+ spring-context
+
+
+ org.springframework
+ spring-aop
+
+
+ org.springframework
+ spring-expression
+
+
+ org.springframework
+ spring-test
+
+
+ org.slf4j
+ slf4j-api
+
+
+ com.alibaba
+ fastjson
+
+
+ dom4j
+ dom4j
+
+
+ junit
+ junit
+
+
+ commons-logging
+ commons-logging
+
+
+ org.apache.curator
+ curator-framework
+
+
+ log4j
+ log4j
+
+
+ slf4j-api
+ org.slf4j
+
+
+
+
+ org.apache.curator
+ curator-recipes
+
+
+
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/core/FlowExecutor.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/core/FlowExecutor.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/core/FlowExecutor.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/core/FlowExecutor.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/core/NodeComponent.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/core/NodeComponent.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/core/NodeComponent.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/core/NodeComponent.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/core/NodeCondComponent.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/core/NodeCondComponent.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/core/NodeCondComponent.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/core/NodeCondComponent.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/entity/config/Chain.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/Chain.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/entity/config/Chain.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/Chain.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/entity/config/Condition.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/Condition.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/entity/config/Condition.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/Condition.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/entity/config/Node.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/Node.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/entity/config/Node.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/Node.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/entity/config/ThenCondition.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/ThenCondition.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/entity/config/ThenCondition.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/ThenCondition.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/entity/config/WhenCondition.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/WhenCondition.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/entity/config/WhenCondition.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/config/WhenCondition.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/AbsSlot.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/AbsSlot.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/AbsSlot.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/AbsSlot.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/CmpStep.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/CmpStep.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/CmpStep.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/CmpStep.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/CmpStepType.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/CmpStepType.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/CmpStepType.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/CmpStepType.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/DataBus.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/DataBus.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/DataBus.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/DataBus.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/DefaultSlot.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/DefaultSlot.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/DefaultSlot.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/DefaultSlot.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/Slot.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/Slot.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/entity/data/Slot.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/data/Slot.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/entity/monitor/CompStatistics.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/monitor/CompStatistics.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/entity/monitor/CompStatistics.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/entity/monitor/CompStatistics.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/exception/ChainNotFoundException.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/ChainNotFoundException.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/exception/ChainNotFoundException.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/ChainNotFoundException.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/exception/ComponentNotAccessException.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/ComponentNotAccessException.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/exception/ComponentNotAccessException.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/ComponentNotAccessException.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/exception/FlowExecutorNotInitException.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/FlowExecutorNotInitException.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/exception/FlowExecutorNotInitException.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/FlowExecutorNotInitException.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/exception/FlowSystemException.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/FlowSystemException.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/exception/FlowSystemException.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/FlowSystemException.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/exception/NoAvailableSlotException.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/NoAvailableSlotException.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/exception/NoAvailableSlotException.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/NoAvailableSlotException.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/exception/ParseException.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/ParseException.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/exception/ParseException.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/exception/ParseException.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/flow/FlowBus.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/flow/FlowBus.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/flow/FlowBus.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/flow/FlowBus.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/monitor/MonitorBus.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/monitor/MonitorBus.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/monitor/MonitorBus.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/monitor/MonitorBus.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/parser/ClassXmlFlowParser.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/ClassXmlFlowParser.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/parser/ClassXmlFlowParser.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/ClassXmlFlowParser.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/parser/LocalXmlFlowParser.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/LocalXmlFlowParser.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/parser/LocalXmlFlowParser.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/LocalXmlFlowParser.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/parser/RegexEntity.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/RegexEntity.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/parser/RegexEntity.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/RegexEntity.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/parser/XmlFlowParser.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/XmlFlowParser.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/parser/XmlFlowParser.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/XmlFlowParser.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/parser/ZookeeperXmlFlowParser.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/ZookeeperXmlFlowParser.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/parser/ZookeeperXmlFlowParser.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/parser/ZookeeperXmlFlowParser.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/spring/ComponentScaner.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/spring/ComponentScaner.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/spring/ComponentScaner.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/spring/ComponentScaner.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/util/Dom4JReader.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/util/Dom4JReader.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/util/Dom4JReader.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/util/Dom4JReader.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/util/IOUtil.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/util/IOUtil.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/util/IOUtil.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/util/IOUtil.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/util/LOGOPrinter.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/util/LOGOPrinter.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/util/LOGOPrinter.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/util/LOGOPrinter.java
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/util/LimitQueue.java b/liteflow-core/src/main/java/com/thebeastshop/liteflow/util/LimitQueue.java
similarity index 100%
rename from liteflow/src/main/java/com/thebeastshop/liteflow/util/LimitQueue.java
rename to liteflow-core/src/main/java/com/thebeastshop/liteflow/util/LimitQueue.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/TestMain.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/TestMain.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/TestMain.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/TestMain.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/TestWithSpringMain.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/TestWithSpringMain.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/TestWithSpringMain.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/TestWithSpringMain.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/component/AComponent.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/AComponent.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/component/AComponent.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/AComponent.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/component/BComponent.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/BComponent.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/component/BComponent.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/BComponent.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/component/CComponent.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/CComponent.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/component/CComponent.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/CComponent.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/component/CondComponent.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/CondComponent.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/component/CondComponent.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/CondComponent.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/component/DComponent.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/DComponent.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/component/DComponent.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/DComponent.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/component/EComponent.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/EComponent.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/component/EComponent.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/EComponent.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/component/FComponent.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/FComponent.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/component/FComponent.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/FComponent.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/component/GComponent.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/GComponent.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/component/GComponent.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/GComponent.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/component/HComponent.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/HComponent.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/component/HComponent.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/HComponent.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/component/M1Component.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/M1Component.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/component/M1Component.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/M1Component.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/component/M2Component.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/M2Component.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/component/M2Component.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/M2Component.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/component/M3Component.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/M3Component.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/component/M3Component.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/M3Component.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/component/MComponent.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/MComponent.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/component/MComponent.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/MComponent.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/component/P1Component.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/P1Component.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/component/P1Component.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/P1Component.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/component/P2Component.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/P2Component.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/component/P2Component.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/P2Component.java
diff --git a/liteflow/src/test/java/com/thebeastshop/liteflow/test/component/PComponent.java b/liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/PComponent.java
similarity index 100%
rename from liteflow/src/test/java/com/thebeastshop/liteflow/test/component/PComponent.java
rename to liteflow-core/src/test/java/com/thebeastshop/liteflow/test/component/PComponent.java
diff --git a/liteflow/src/test/resources/config/flow.xml b/liteflow-core/src/test/resources/config/flow.xml
similarity index 100%
rename from liteflow/src/test/resources/config/flow.xml
rename to liteflow-core/src/test/resources/config/flow.xml
diff --git a/liteflow/src/test/resources/log4j.xml b/liteflow-core/src/test/resources/log4j.xml
similarity index 100%
rename from liteflow/src/test/resources/log4j.xml
rename to liteflow-core/src/test/resources/log4j.xml
diff --git a/liteflow/src/test/resources/spring-test.xml b/liteflow-core/src/test/resources/spring-test.xml
similarity index 100%
rename from liteflow/src/test/resources/spring-test.xml
rename to liteflow-core/src/test/resources/spring-test.xml
diff --git a/liteflow-spring-boot-starter/pom.xml b/liteflow-spring-boot-starter/pom.xml
new file mode 100644
index 000000000..142176d0c
--- /dev/null
+++ b/liteflow-spring-boot-starter/pom.xml
@@ -0,0 +1,32 @@
+
+
+
+ liteflow
+ com.thebeastshop
+ 2.1.0
+
+ 4.0.0
+
+ liteflow-spring-boot-starter
+
+
+
+ com.thebeastshop
+ liteflow-core
+ ${project.parent.version}
+
+
+ org.springframework.boot
+ spring-boot-autoconfigure
+ 2.0.5.RELEASE
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ 2.0.5.RELEASE
+
+
+
+
diff --git a/liteflow-spring-boot-starter/src/main/java/com/thebeastshop/liteflow/springboot/LiteflowAutoConfiguration.java b/liteflow-spring-boot-starter/src/main/java/com/thebeastshop/liteflow/springboot/LiteflowAutoConfiguration.java
new file mode 100644
index 000000000..160fd922a
--- /dev/null
+++ b/liteflow-spring-boot-starter/src/main/java/com/thebeastshop/liteflow/springboot/LiteflowAutoConfiguration.java
@@ -0,0 +1,40 @@
+package com.thebeastshop.liteflow.springboot;
+
+import com.google.common.collect.Lists;
+import com.thebeastshop.liteflow.core.FlowExecutor;
+import com.thebeastshop.liteflow.spring.ComponentScaner;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Configuration
+@ConditionalOnProperty(name = "liteflow.ruleSource")
+public class LiteflowAutoConfiguration {
+
+ @Bean
+ public ComponentScaner componentScaner(){
+ return new ComponentScaner();
+ }
+
+ @Bean
+ public FlowExecutor flowExecutor(LiteflowProperty property){
+ if(StringUtils.isNotBlank(property.getRuleSource())){
+ List ruleList = Lists.newArrayList(property.getRuleSource().split(","));
+ FlowExecutor flowExecutor = new FlowExecutor();
+ flowExecutor.setRulePath(ruleList);
+ return flowExecutor;
+ }else{
+ return null;
+ }
+ }
+}
diff --git a/liteflow-spring-boot-starter/src/main/java/com/thebeastshop/liteflow/springboot/LiteflowProperty.java b/liteflow-spring-boot-starter/src/main/java/com/thebeastshop/liteflow/springboot/LiteflowProperty.java
new file mode 100644
index 000000000..c97115e64
--- /dev/null
+++ b/liteflow-spring-boot-starter/src/main/java/com/thebeastshop/liteflow/springboot/LiteflowProperty.java
@@ -0,0 +1,19 @@
+package com.thebeastshop.liteflow.springboot;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class LiteflowProperty {
+
+ @Value("${liteflow.ruleSource}")
+ private String ruleSource;
+
+ public String getRuleSource() {
+ return ruleSource;
+ }
+
+ public void setRuleSource(String ruleSource) {
+ this.ruleSource = ruleSource;
+ }
+}
diff --git a/liteflow-spring-boot-starter/src/main/resources/META-INF/spring.factories b/liteflow-spring-boot-starter/src/main/resources/META-INF/spring.factories
new file mode 100644
index 000000000..5f08005da
--- /dev/null
+++ b/liteflow-spring-boot-starter/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,3 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ com.thebeastshop.liteflow.springboot.LiteflowProperty,\
+ com.thebeastshop.liteflow.springboot.LiteflowAutoConfiguration
diff --git a/liteflow-test/pom.xml b/liteflow-test/pom.xml
index 49fcc8cc7..2c8fe3f96 100644
--- a/liteflow-test/pom.xml
+++ b/liteflow-test/pom.xml
@@ -25,7 +25,7 @@
com.thebeastshop
- liteflow
+ liteflow-spring-boot-starter
2.1.0
diff --git a/liteflow-test/src/main/resources/application.properties b/liteflow-test/src/main/resources/application.properties
index c79fb6b3e..5638b647a 100644
--- a/liteflow-test/src/main/resources/application.properties
+++ b/liteflow-test/src/main/resources/application.properties
@@ -1 +1 @@
-liteFlow.ruleSource=config/flow.xml
+liteflow.ruleSource=config/flow.xml
diff --git a/liteflow/pom.xml b/liteflow/pom.xml
deleted file mode 100644
index eda89e07a..000000000
--- a/liteflow/pom.xml
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
- com.thebeastshop
- liteflow
- jar
- 4.0.0
- 2.1.0
-
-
- UTF-8
- 1.8
- 3.4
- 4.1
- 2.4
- 1.2
- 5.0.9.RELEASE
- 1.7.21
- 1.2.17
- 1.7.5
- 1.7.13
- 1.2.7
- 1.6.1
- 2.12.0
- 4.12
-
-
-
-
- org.apache.commons
- commons-lang3
- ${commons.lang3.version}
-
-
- org.apache.commons
- commons-collections4
- ${commons-collections.version}
-
-
- commons-io
- commons-io
- ${commons-io.version}
-
-
- org.springframework
- spring-beans
- ${spring.version}
-
-
- org.springframework
- spring-context
- ${spring.version}
-
-
- org.springframework
- spring-aop
- ${spring.version}
-
-
- org.springframework
- spring-expression
- ${spring.version}
-
-
- org.springframework
- spring-test
- ${spring.version}
-
-
- org.slf4j
- slf4j-api
- ${org.slf4j.version}
-
-
- com.alibaba
- fastjson
- ${fastjson.version}
-
-
- dom4j
- dom4j
- ${dom4j.version}
-
-
- junit
- junit
- ${junit.version}
-
-
- commons-logging
- commons-logging
- ${commons-logging.version}
-
-
- org.apache.curator
- curator-framework
- ${curator.version}
-
-
- log4j
- log4j
-
-
- slf4j-api
- org.slf4j
-
-
-
-
- org.apache.curator
- curator-recipes
- ${curator.version}
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
- UTF-8
- ${java.version}
- ${java.version}
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 2.18.1
-
- true
-
-
-
-
-
-
-
- nexus-releases
- nexus-releases
- http://118.178.236.200:8087/nexus/content/repositories/thirdparty
-
-
- nexus-snapshots
- nexus-snapshots
- http://118.178.236.200:8087/nexus/content/repositories/snapshots
-
-
-
diff --git a/liteflow/src/main/java/com/thebeastshop/liteflow/spring/FlowContextInitializer.java b/liteflow/src/main/java/com/thebeastshop/liteflow/spring/FlowContextInitializer.java
deleted file mode 100644
index 35ecefa2c..000000000
--- a/liteflow/src/main/java/com/thebeastshop/liteflow/spring/FlowContextInitializer.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.thebeastshop.liteflow.spring;
-
-import com.thebeastshop.liteflow.core.FlowExecutor;
-import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.support.DefaultListableBeanFactory;
-import org.springframework.context.ApplicationContextInitializer;
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.core.env.ConfigurableEnvironment;
-import org.springframework.core.env.PropertySource;
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-public class FlowContextInitializer implements ApplicationContextInitializer {
-
- private final static String LITEFLOW_PROPERTY = "liteFlow.ruleSource";
-
- @Override
- public void initialize(ConfigurableApplicationContext context) {
- ConfigurableEnvironment environment = context.getEnvironment();
-
- Iterator> it = environment.getPropertySources().iterator();
- while (it.hasNext()){
- PropertySource propertySource = it.next();
- if(propertySource.containsProperty(LITEFLOW_PROPERTY)){
- //注册scaner
- DefaultListableBeanFactory factory = (DefaultListableBeanFactory)context.getBeanFactory();
- BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(ComponentScaner.class);
- factory.registerBeanDefinition("componentScaner", beanDefinitionBuilder.getRawBeanDefinition());
- //注册flowExecutor
- String rulePath = (String)propertySource.getProperty(LITEFLOW_PROPERTY);
- beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(FlowExecutor.class);
- beanDefinitionBuilder.addPropertyValue("rulePath",Arrays.asList(rulePath.split(",")));
- factory.registerBeanDefinition("flowExecutor", beanDefinitionBuilder.getRawBeanDefinition());
- }
- }
- }
-}
diff --git a/liteflow/src/main/resources/META-INF/spring.factories b/liteflow/src/main/resources/META-INF/spring.factories
deleted file mode 100644
index e58aa7f0a..000000000
--- a/liteflow/src/main/resources/META-INF/spring.factories
+++ /dev/null
@@ -1,2 +0,0 @@
-org.springframework.context.ApplicationContextInitializer=\
- com.thebeastshop.liteflow.spring.FlowContextInitializer
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 000000000..2f841eb9d
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,158 @@
+
+
+ com.thebeastshop
+ liteflow
+ pom
+ 4.0.0
+ 2.1.0
+
+
+ UTF-8
+ 1.8
+ 3.4
+ 4.1
+ 2.4
+ 1.2
+ 5.0.9.RELEASE
+ 1.7.21
+ 1.2.17
+ 1.7.5
+ 1.7.13
+ 1.2.7
+ 1.6.1
+ 2.12.0
+ 4.12
+
+
+
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons.lang3.version}
+
+
+ org.apache.commons
+ commons-collections4
+ ${commons-collections.version}
+
+
+ commons-io
+ commons-io
+ ${commons-io.version}
+
+
+ org.springframework
+ spring-beans
+ ${spring.version}
+
+
+ org.springframework
+ spring-context
+ ${spring.version}
+
+
+ org.springframework
+ spring-aop
+ ${spring.version}
+
+
+ org.springframework
+ spring-expression
+ ${spring.version}
+
+
+ org.springframework
+ spring-test
+ ${spring.version}
+
+
+ org.slf4j
+ slf4j-api
+ ${org.slf4j.version}
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
+
+ dom4j
+ dom4j
+ ${dom4j.version}
+
+
+ junit
+ junit
+ ${junit.version}
+
+
+ commons-logging
+ commons-logging
+ ${commons-logging.version}
+
+
+ org.apache.curator
+ curator-framework
+ ${curator.version}
+
+
+ log4j
+ log4j
+
+
+ slf4j-api
+ org.slf4j
+
+
+
+
+ org.apache.curator
+ curator-recipes
+ ${curator.version}
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ UTF-8
+ ${java.version}
+ ${java.version}
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 2.18.1
+
+ true
+
+
+
+
+
+
+ liteflow-core
+ liteflow-test
+ liteflow-spring-boot-starter
+
+
+
+
+ nexus-releases
+ nexus-releases
+ http://118.178.236.200:8087/nexus/content/repositories/thirdparty
+
+
+ nexus-snapshots
+ nexus-snapshots
+ http://118.178.236.200:8087/nexus/content/repositories/snapshots
+
+
+