在一些業務場景中,在容器啓動完成後,須要處理一些諸如: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繼承
後續會上源碼分析接口