丈夫志四海,万里犹比邻。这篇文章主要讲述Spring框架 ? 项目启动时执行特定处理及ApplicationListener源码分析相关的知识,希望能为你提供帮助。
1、背景在一些业务场景中,在容器启动完成后,需要处理一些诸如:kafka业务注册,数据处理,初始化缓存等的操作。
本文重点介绍如何在服务启动中,或启动完成时执行相关处理。
2、针对上述场景,有如下实现方法【Spring框架 ? 项目启动时执行特定处理及ApplicationListener源码分析】A:实现基于javaweb的ServletContextListener接口,重写contextInitialized()接口
文章图片
B:实现基于javaweb的javax.servlet包下的Filter接口,重写init(FilterConfig filterConfig)接口
文章图片
C:继承基于javaweb的servlet包下的HttpServlet父类,重写init()接口即可
文章图片
D:实现基于Spring的ApplicationListener< ContextRefreshedEvent> 接口,重写onApplicationEvent(ContextRefreshedEvent event)接口
文章图片
总结:基于javaweb实现的接口,均需要在web.xml注册才可以启动时扫描到。基于Spring实现的,需要把对象注册到容器中。
下面是在一个加载顺序,可以看出 Listener和Filter是在Servlet之前执行的。
文章图片
3、ApplicationListener源码分析 可以先看下 https://blog.csdn.net/u014263388/article/details/78996509
后续会上源码分析
推荐阅读
- android布局中使用include及需注意点
- android 调用系统相机录像并保存
- Android各大手机系统打开权限管理页面
- Spring框架 ? WebApplicationInitializer源码分析及应用
- android学习(intent和Bundle传值上的区别)
- 推荐!Python Pandas面试题和答案详解
- Kali Linux面试题和答案精华推荐
- HTTP面试题和答案详细汇总分析
- 精品!数据仓库面试题和答案合集