🐮启动时生命周期
版本支持:v2.12.4+
LiteFlow在启动时提供了一些生命周期接口,开发者可以根据需要去实现它们,从而做到在启动的特定时机插入自己的逻辑。
# 规则构造前后
这个生命周期发生在LiteFlow去构造Chain的时候。开发者只要实现如下接口,并注册到spring/solon的上下文中,就可以声明了。
@Component
public class TestChainLifeCycle implements PostProcessChainBuildLifeCycle {
@Override
public void postProcessBeforeChainBuild(Chain chain) {
//do something
}
@Override
public void postProcessAfterChainBuild(Chain chain) {
//do something
}
}
# 节点构造前后
这个生命周期发生在LiteFlow去构造Node的时候,开发者只要实现如下接口,并注册到spring/solon的上下文中,就可以声明了。
@Component
public class TestNodeLifeCycle implements PostProcessNodeBuildLifeCycle {
@Override
public void postProcessBeforeNodeBuild(Node node) {
//do something
}
@Override
public void postProcessAfterNodeBuild(Node node) {
//do something
}
}
# 脚本引擎初始化后
这个生命周期发生在脚本引擎初始化后(如果你有引入脚本插件的话),开发者只要实现如下接口,并注册到spring/solon的上下文中,就可以声明了。
public class TestScriptInitLifeCycle implements PostProcessScriptEngineInitLifeCycle {
@Override
public void postProcessAfterScriptEngineInit(Object engine) {
//do something
}
}
请注意,这个engine对象在各个脚本插件下是不同的。需要强转下
对于Groovy / Aviator / JS(JDK) / Kotlin / Lua 这些脚本语言来说,由于都是采用JSR23的实现方式,这里的engine对象为javax.script.ScriptEngine
。
对于JS(GraalJs)来说,这里的engine对象为org.graalvm.polyglot.Engine
。
对于Python来说,这里的engine对象为org.python.util.PythonInterpreter
。
对于QLExpress来说,这里的engine对象为com.ql.util.express.ExpressRunner
。
对于Java(Janino) / Java(Liquor) 来说,由于他们都是通过静态类去执行,所以这里的engine对象没有,为null。
提示
同一个生命周期声明多个并不会覆盖,而是会挨个执行。
帮助我们改善此文档 (opens new window)
上次更新: 2024/10/14, 00:31:58