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应用及做一些对应的业务逻辑。