springMVC源码阅读1

 1 @HandlesTypes(WebApplicationInitializer.class)
 2 public class SpringServletContainerInitializer implements ServletContainerInitializer {    
 3 @Override
 4     public void onStartup(@Nullable Set<Class<?>> webAppInitializerClasses, ServletContext servletContext)
 5             throws ServletException {
 6 
 7         List<WebApplicationInitializer> initializers = new LinkedList<>();
 8 
 9         if (webAppInitializerClasses != null) {
10             for (Class<?> waiClass : webAppInitializerClasses) {
11                 // Be defensive: Some servlet containers provide us with invalid classes,
12                 // no matter what @HandlesTypes says...
13                 if (!waiClass.isInterface() && !Modifier.isAbstract(waiClass.getModifiers()) &&
14                         WebApplicationInitializer.class.isAssignableFrom(waiClass)) {
15                     try {
16                         initializers.add((WebApplicationInitializer)
17                                 ReflectionUtils.accessibleConstructor(waiClass).newInstance());
18                     }
19                     catch (Throwable ex) {
20                         throw new ServletException("Failed to instantiate WebApplicationInitializer class", ex);
21                     }
22                 }
23             }
24         }
25 
26         if (initializers.isEmpty()) {
27             servletContext.log("No Spring WebApplicationInitializer types detected on classpath");
28             return;
29         }
30 
31         servletContext.log(initializers.size() + " Spring WebApplicationInitializers detected on classpath");
32         AnnotationAwareOrderComparator.sort(initializers);
33         for (WebApplicationInitializer initializer : initializers) {
34             initializer.onStartup(servletContext);
35         }
36     }
37 
38 }

猜你喜欢

转载自www.cnblogs.com/qqyycom/p/9445260.html