【Spring框架】 ☞ 項目啓動時執行特定處理及ApplicationListener源碼分析

一、背景

  在一些業務場景中,在容器啓動完成後,須要處理一些諸如: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

 

三、ApplicationListener源碼分析

  能夠先看下 https://blog.csdn.net/u014263388/article/details/78996509繼承

  後續會上源碼分析接口

相關文章
相關標籤/搜索