WebApplicationContextUtils 可以获取
WebApplicationContextWebApplicationContext 可以获取bean,然后执行方法获取数据。
package cn.sccl.common.web;import java.util.List;import java.util.Map;import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.context.ApplicationContext;import org.springframework.web.context.ContextLoaderListener;import org.springframework.web.context.support.WebApplicationContextUtils;import cn.sccl.common.service.BizCodeManager;import cn.sccl.common.web.util.Log4jWebConfigurer;import cn.sccl.pms.model.Division;import cn.sccl.pms.model.DivisionQuery;import cn.sccl.pms.service.DivisionManager;public class StartupListener extends ContextLoaderListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent event) { super.contextInitialized(event); ServletContext context = event.getServletContext();//获取servletContext //也可以在实现了HttpServlet接口中获取,ServletContext servletContext = this.getServletContext(); setupContext(context); } protected void setupContext(final ServletContext context) {// WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext); //推荐使用这种,因为getRequiredWebApplicationContext要求servletContext中必须要有ApplicationContext ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(context); // 行政区划 DivisionManager divisionManager = (DivisionManager) ctx.getBean("divisionManager");//得到manager Listdivisions = divisionManager.query(new DivisionQuery()); //将数据放入ServletContext 页面中就在application中获取,因为application和servletContext对应 context.setAttribute("divisions", divisions); }}