ServletContextListener是servlet容器中的一個API接口, 它用來監聽ServletContext的生命周期,也就是相當于用來監聽Web應用的生命周期。今天我們就來說說如何在Springboot 1.5.2這個輕量型框架中如何使用它。?
其實配置ServletContextListener與其它Filter, Listener, Servlet方法是一致的,具體可參考Springboot 1.5.2?官方文檔?
首先寫一個類來實現ServletContextListener接口,并實現contextInitialized(), contextDestroyed()兩個父類方法,并使用@WebListener注解, 具體代碼如下:
package org.liting;import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;import org.slf4j.Logger; import org.slf4j.LoggerFactory; @WebListener public class PmsServletContextListener implements ServletContextListener{ private Logger logger = LoggerFactory.getLogger(this.getClass()); @Override public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub logger.info("liting: contextDestroyed"); } @Override public void contextInitialized(ServletContextEvent arg0) { // TODO Auto-generated method stub logger.info("liting: contextInitialized"); } }
其次在Springboot web 應用啟動代碼中添加@ServletComponentScan注解,使我們的Springboot應用在啟動時能掃描到該Listener.
運行項目,我們可以springboot的啟動log看到如下log信息,即表明我們的ServletContextListener注冊成功。
2017-03-28 20:31:43.274 INFO 8808 --- [ost-startStop-1] org.liting.PmsServletContextListener : liting: contextInitialized
那么我們就可以利用ServletContextListener來監聽我們的web應用及做一些對應的業務邏輯。