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

提醒:

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

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

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

2、六个事件时机点

事件说明

事件 说明
6.AppInitEndEvent 应用初始化完成事件
8.AppPluginLoadEndEvent 应用插件加载完成事件
b.AppBeanLoadEndEvent 应用Bean加载完成事件(即扫描完成)
e.AppLoadEndEvent 应用加载完成事件
::运行
g.AppPrestopEndEvent 应用预停止事件
j.AppStopEndEvent 应用停止事件

事件订阅示例

  • 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{}
}
  • 执行时机
接口 执行时机 说明
7.start 在应用初始化完成后执行 启动
f.prestop 在 ::stop 前执行 预停止
h.stop 在 Solon::stop 时执行 停止(启用安全停止时,prestop 后等几秒再执行 stop)

4、两个容器生命时机点

接口 执行时机 说明
d.start 在扫描完成之后执行 启动
i.stop 在 Solon::stop 时执行 停止

最新文章

  1. $\LaTeX$笔记:Section 编号方式(数字、字母、罗马)&amp;计数器计数形式修改
  2. js提取正则中的字符串
  3. Javascript 面向对象编程初探(一)--- 封装
  4. css margin 参数
  5. 使用javabeen的好处
  6. 计算两条直线的交点(C#)
  7. Firefly卡牌手游《暗黑世界V1.5》服务器端源码+GM管理后台源码
  8. Mina学习之IoSession
  9. Robotium跨应用处理方法
  10. 解析SS、SP、BP寄存器
  11. 申请9位数QQ
  12. js初学练手:Csdn Ads Cleaner
  13. BAT开发中,ChromeDriver版本兼容性检查
  14. contenttypes组件 (处理大量外键)
  15. from __future__ import print_function
  16. 2018-2019 ICPC, NEERC, Northern Eurasia Finals (Unrated, Online Mirror, ICPC Rules, Teams Preferred) Solution
  17. Java中树和树的几种常规遍历方法
  18. 消息传递 树形DP
  19. spring mvc注解和spring boot注解
  20. 【NOI2014】起床困难综合症 贪心

热门文章

  1. week_10
  2. python文件的写入与读出
  3. CompletableFuture 使用总结
  4. Http请求接口
  5. C#开发的线程池和管理器 - 开源研究系列文章
  6. DVWA靶场实战(二)——Command Injection
  7. LOJ 数列分块入门 9 题解题报告
  8. 这可能是Matplotlib和Seaborn最全的入门文档
  9. react,vue中的key有什么作用?(key的内部原理)
  10. .NET周报【1月第3期 2023-01-20】