spring web项目下,判断项目是否启动完成

 

本文同时发布于见鬼网:https://faceghost.com/article/483341

 

 

概述:spring 加载完成后,我们有时候会做一些初始化工作,如加载一些缓存,DB,等,这里采用实现ServletContextListener接口,来去判断。

特别注意的地方是,我们在web.xml中配置这个listener一定要在spring配置的下面。

web.xml

 <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!--放在spring init 之后 -->
    <listener>
        <listener-class>com.xx.listener.WebAppContentListener</listener-class>
    </listener>

WebAppContentListener.java

package com.xx.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.apache.log4j.Logger;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;


public class WebAppContentListener implements ServletContextListener {

    private static final Logger log = Logger.getLogger(WebAppContentListener.class);

    public static ApplicationContext WEB_APP_CONTEXT = null;

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        WEB_APP_CONTEXT = WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());
        if(WEB_APP_CONTEXT != null) {
            log.info("started ...");/**
             * 在这里做一些初始化工作。
             * 
             * ApplicationContext 可以获取spring容器的bean
             * 
             * e.g.
             * 
             * WEB_APP_CONTEXT.getBean(args)
             * 
             */

        }
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {

    }

}

 

posted on 2018-03-08 16:50  Hi_face  阅读(696)  评论(0编辑  收藏  举报