在Web容器启动时,web.xml的加载顺序通常是这样的,挑选几个经常使用属性来讲,顺序以下
一、context-paramweb
二、listenerspring
三、 filteride
四、 servlet
而当咱们想要在Listener初始化一些数据的时候,势必要把初始化的逻辑代码写在listener里面。
在同一个web.xml里面写两个listener,它们的初始化顺序是不根据你写在web.xml里面的顺序而定的,就至关于说你要想在自定义Listener使用spring管理的bean那就会获得一个null值。
那这个时候就要手动的去控制好listener的顺序。那若是不要使用spring管理的bean那也就没有这个必要去控制顺序。
方法确定是有的,能够采用自定义的listener但这个listener不要去去实现ServletContextListener,而是extends org.springframework.web.context.ContextLoaderListener。Override contextInitialized(ServletContextEvent event)方法,在这个Override方法里面控制好执行顺序就能够了。spa