ServletContextListener监听程序初始化 applicationContext为空

public class InitBloggerData implements ServletContextListener, ApplicationContextAware {

	private static ApplicationContext applicationContext = null;

	@Override
	public void setApplicationContext(ApplicationContext applicationContext)
			throws BeansException {
		InitBloggerData.applicationContext = applicationContext;
	}
	public void contextInitialized(ServletContextEvent sce) {
		//先获取servlet上下文
		ServletContext application = sce.getServletContext();
		//同上,获取博客类别信息service
		BlogTypeService blogTypeService = applicationContext.getBean(BlogTypeService.class);

你的这个类,有被IOC加载?

你可以自定义一个ContextListener

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

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ContextListener implements ServletContextListener{
	
	private static final Logger LOGGER = LoggerFactory.getLogger(ContextListener.class);
	
	@Override
	public void contextInitialized(ServletContextEvent sce) {
		LOGGER.info("application context init = {}", sce.getServletContext());
	}
}

然后通过ServletListenerRegistrationBean加载

	@Bean
	public ServletListenerRegistrationBean<ContextListener> servletListenerRegistrationBean(){
		ServletListenerRegistrationBean<ContextListener> servletListenerRegistrationBean = new ServletListenerRegistrationBean<>(new ContextListener());
		return servletListenerRegistrationBean;
	}