今天想在Filter中使用spring 的IOC,web.xml配置的IOC加载方式是Servlet,在Filter的init方法中执行如下的语句:WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servletContext);但是不能获得context,后来我把Ioc的加载方式改为Listener的方式,就成功了。为什么呢?原来是web容器对这些组件的加载顺序造成的。所以就研究了一下web容器对这些组件的加载方式,最后得出的加载顺序是: Listener,Filter,Servlet。

注意上面提到的web容器是tomcat5.0/5.5,可能不同的web容器会不同,不知道现在servlet规范是否已经约定这写组件加载顺序没有,找个时间研究一下。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐