Solon 框架的应用生命周期包括:一个初始化函数时机点 + 六个事件时机点 + 两个插件生命时机点 + 两个容器生命时机点(v2.2.0 版本的状态):
提醒:
EventBus.subscribe(...)
订阅@SolonMain
public class App{public static void main(String[] args){Solon.start(App.class, args, (app)->{//应用初始化时间点});}
}
事件 | 说明 |
---|---|
6.AppInitEndEvent | 应用初始化完成事件 |
8.AppPluginLoadEndEvent | 应用插件加载完成事件 |
b.AppBeanLoadEndEvent | 应用Bean加载完成事件(即扫描完成) |
e.AppLoadEndEvent | 应用加载完成事件 |
::运行 | |
g.AppPrestopEndEvent | 应用预停止事件 |
j.AppStopEndEvent | 应用停止事件 |
@Component
public class AppLoadEndEventListener implements EventListener{@Overridepublic void onEvent(AppLoadEndEvent event) throws Throwable {//event.app(); //获取应用对象}
}
@Component
public class AppStopEndEventListener implements EventListener{@Overridepublic void onEvent(AppStopEndEvent event) throws Throwable {//event.app(); //获取应用对象}
}
插件的本质,即在应用生命周期中获得关键执行时机的接口。从而有效获得应用扩展能力。
@FunctionalInterface
public interface Plugin {void start(AopContext context) throws Throwable;default void prestop() throws Throwable{}default void stop() throws Throwable{}
}
接口 | 执行时机 | 说明 |
---|---|---|
7.start | 在应用初始化完成后执行 | 启动 |
f.prestop | 在 ::stop 前执行 | 预停止 |
h.stop | 在 Solon::stop 时执行 | 停止(启用安全停止时,prestop 后等几秒再执行 stop) |
接口 | 执行时机 | 说明 |
---|---|---|
d.start | 在扫描完成之后执行 | 启动 |
i.stop | 在 Solon::stop 时执行,在插件(h.stop)后执行 | 停止 |