
Web容器启动后执行代码的几种方式,其执行顺序为:
4===>5===>1===>2===>3,
执行spring的ContextLoaderListener器初始化spring工厂,同时执行指定init-method的Bean开始执行,
接着实现spring的Bean后置处理器开始执行,
然后是Servlet的器执行,
再接下来是Servlet的过滤器执行,最后才是Servlet执行。
1.实现Servlet器接口ServletContextListener
public class InitListener implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent context) {
}
@Override
public void contextInitialized(ServletContextEvent context) {
// 上下文初始化执行
System.out.println("================>[ServletContextListener]自动加载启动开始.");
SpringUtil.getInstance().setContext(WebApplicationContextUtils.getWebApplicationContext(arg0.getServletContext()));
}
}
然后在web.xml文件配置该器
<listener>
<listener-class>com.test.init.InitListener</listener-class>
</listener>
2.实现Servlet的过滤器Filter
public class InitFilter implements Filter {
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException,
ServletException {
}
@Override
public void init(FilterConfig config) throws ServletException {
System.out.println("================>[Filter]自动加载启动开始.");
// 读取Spring容器中的Bean[此时Bean已加载,可以使用]
//写启动需要执行的代码
System.out.println("================>[Filter]自动加载启动结束.");
}
}
然后在web.xml文件配置过滤器即可
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-69173-1.html
1990年的马云说这句话
常识告诉我不太可能
活蛆不可能死蛆呢