SpingWebInitializer的加载
Spring基于注解的配置代码:
public class SpingWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[]{RootConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[]{WebConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
}
整体调用UML图:
SpringServletContainerInitializer.onStartup传入参数:
类型判断必须是继承WebApplicationInitializer接口:
isAssignableFrom 是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。
通常调用格式是
Class1.isAssignableFrom (Class2)
调用者和参数都是 java.lang.Class 类型。
而 instanceof 是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。
格式是: oo instanceof TypeName
第

本文详细探讨了SpringWebInitializer的加载过程,从Spring基于注解的配置代码开始,讲解了SpringServletContainerInitializer.onStartup方法中如何判断WebApplicationInitializer接口,以及isAssignableFrom方法的作用。接着,分析了onStartup调用链,包括AbstractDispatcherServletInitializer、AbstractAnnotationConfigDispatcherServletInitializer和SpingWebInitializer的调用关系。此外,还揭示了创建根应用上下文和DispatcherServlet初始化的详细步骤,涉及ContextLoaderListener、ContextLoader以及Tomcat的相关操作。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



