Solon 框架的应用生命周期包括:一个初始化函数时机点 + 六个事件时机点 + 两个插件生命时机点 + 两个容器生命时机点(v2.2.0 版本的状态):

Solon2 的应用生命周期-LMLPHP

提醒:

  • 启动过程完成后,项目才能正常运行(启动过程中,不能把线程卡死了)
  • AppBeanLoadEndEvent 之前的事件,需要启动前通过 EventBus.subscribe(...) 订阅

1、一个初始化函数时机点

@SolonMain
public class App{
    public static void main(String[] args){
        Solon.start(App.class, args, (app)->{
            //应用初始化时间点
        });
    } 
}

2、六个事件时机点

事件说明

事件订阅示例

  • AppLoadEndEvent
@Component
public class  AppLoadEndEventListener implements EventListener<AppLoadEndEvent>{
    @Override
    public void onEvent(AppLoadEndEvent event) throws Throwable {
        //event.app(); //获取应用对象
    }
}
  • AppStopEndEvent,v2.1.0 后支持
@Component
public class  AppStopEndEventListener implements EventListener<AppStopEndEvent>{
    @Override
    public void onEvent(AppStopEndEvent event) throws Throwable {
        //event.app(); //获取应用对象
    }
}

3、两个插件生命时机点

插件的本质,即在应用生命周期中获得关键执行时机的接口。从而有效获得应用扩展能力。

  • 插件接口 Plugin
@FunctionalInterface
public interface Plugin {
    void start(AopContext context) throws Throwable;
    default void prestop() throws Throwable{}
    default void stop() throws Throwable{}
}
  • 执行时机

4、两个容器生命时机点

03-02 14:47