2015-03-13 64 views

回答

0

如果您想在應用程序啓動時進行初始化或在應用程序被銷燬時進行清理,則應使用此接口。

當應用程序啓動時,Servlet容器調用此接口的OnStart方法,將參數傳入一組實現,擴展或用HandlesTypes註釋中聲明的類型註釋的所有類。

該規範還添加了許多方法動態註冊的Servlet,過濾器和監聽器。

下面是例如你如何初始化春季調度的Servlet:

public class MyWebAppInitializer implements WebApplicationInitializer { 
    @Override 
    public void onStartup(ServletContext ctx) throws ServletException { 

     ServletRegistration.Dynamic dispatcher = ctx.addServlet("dispatcher", new DispatcherServlet()); 
     dispatcher .setLoadOnStartup(1); 
     dispatcher .addMapping("/"); 
    } 
} 
0

WebApplicationInitializer - 這提供註冊servlet來你的servlet上下文的編程方法。在servlet 3.0之前,只能通過web.xml來完成。使用servlet 3.0規範,您可以將您的調度程序servlet註冊到servlet上下文,以便他們知道您的應用程序上下文和功能類似於在web.xml中註冊的servlet。

ServletContext不過是提供接口方法來與您的servlet容器進行交互。它的Javadoc非常好。

SpringServletContainerInitializerServletContainerInitializer的實現是負責調用的的onStartup WebApplicationInitializer並將其傳遞一個裁判ServletContext的

兩個的web.xmlWebApplicationInitializer可以共存,你可以註冊其他的servlet,我認爲你可以重寫的servlet爲好。

你有噸例子赫然出現在網站向您展示如何使用WebApplicationInitializer

希望這有助於。