码迷,mamicode.com
首页 > 移动开发 > 详细

【Spring框架】 ? 项目启动时执行特定处理及ApplicationListener源码分析

时间:2018-07-09 19:17:14      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:one   需要   nap   article   ext   art   扫描   父类   detail   

1、背景

  在一些业务场景中,在容器启动完成后,需要处理一些诸如:kafka业务注册,数据处理,初始化缓存等的操作。

  本文重点介绍如何在服务启动中,或启动完成时执行相关处理。

2、针对上述场景,有如下实现方法

  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

  后续会上源码分析

【Spring框架】 ? 项目启动时执行特定处理及ApplicationListener源码分析

标签:one   需要   nap   article   ext   art   扫描   父类   detail   

原文地址:https://www.cnblogs.com/liuxs13/p/9284445.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!