它的實現類及子類,當類路徑下配置正確的元數據文件,可以在容器初始化的時候自動調用實現類的onStartup方法,另外需要配合註解javax.servlet.annotation.HandlesTypes使用,不明白這幾句話的意思的話,後面的示例代碼中有使用說明。
既然servlet容器會調用ServletContainerInitializer的onStartup方法,這也是spring mvc動態註冊DispatcherServlet的入口,那就看spring mvc對這個介面的關鍵實現:
List<WebApplicationInitializer> initializers = new LinkedList<WebApplicationInitializer>();
servlet容器會自動調用這個類的onStartup方法,但是首先要告訴servlet容器這個類的存在,上文提到了一個元數據文件,它在spring-web包下,這個文件的要求是這樣的:
1. 在類路徑的WEB-INF/services目錄下
2. 名字是javax.servlet.ServletContainerInitializer
3. 內容是實現類的全路徑