在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