在一些业务场景中,在容器启动完成后,须要处理一些诸如:kafka业务注册,数据处理,初始化缓存等的操做。java
本文重点介绍如何在服务启动中,或启动完成时执行相关处理。web
A:实现基于javaweb的ServletContextListener接口,重写contextInitialized()接口缓存
B:实现基于javaweb的javax.servlet包下的Filter接口,重写init(FilterConfig filterConfig)接口源码分析
C:继承基于javaweb的servlet包下的HttpServlet父类,重写init()接口便可.net
D:实现基于Spring的ApplicationListener<ContextRefreshedEvent>接口,重写onApplicationEvent(ContextRefreshedEvent event)接口xml
总结:基于javaweb实现的接口,均须要在web.xml注册才能够启动时扫描到。基于Spring实现的,须要把对象注册到容器中。对象
下面是在一个加载顺序,能够看出 Listener和Filter是在Servlet以前执行的。blog
能够先看下 https://blog.csdn.net/u014263388/article/details/78996509继承
后续会上源码分析接口