protected WebApplicationContext createRootApplicationContext(ServletContext servletContext) {
   SpringApplicationBuilder builder = new SpringApplicationBuilder();
   builder.main(getClass());
   ApplicationContext parent = getExistingRootWebApplicationContext(servletContext);
   if (parent != null) {
     this.logger.info("Root context already created (using as parent).");
     servletContext.setAttribute(
         WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, null);
     builder.initializers(new ParentContextApplicationContextInitializer(parent));
   }
   builder.initializers(new ServletContextApplicationContextInitializer(servletContext));
   builder.contextClass(AnnotationConfigEmbeddedWebApplicationContext.class);
   builder = configure(builder);
   SpringApplication application = builder.build();
   if (application.getSources().isEmpty()
       && AnnotationUtils.findAnnotation(getClass(), Configuration.class) != null) {
     application.getSources().add(getClass());
   }
   Assert.state(
       application.getSources().size() > 0,
       "No SpringApplication sources have been defined. Either override the "
           + "configure method or add an @Configuration annotation");
   // Ensure error pages are registered
   application.getSources().add(ErrorPageFilter.class);
   return run(application);
 }
コード例 #2
0
 protected WebApplicationContext createRootApplicationContext(ServletContext servletContext) {
   ApplicationContext parent = null;
   Object object =
       servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
   if (object instanceof ApplicationContext) {
     this.logger.info("Root context already created (using as parent).");
     parent = (ApplicationContext) object;
     servletContext.setAttribute(
         WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, null);
   }
   SpringApplicationBuilder application =
       new SpringApplicationBuilder().sources(getConfigClasses());
   application.initializers(
       new ParentContextApplicationContextInitializer(parent),
       new ServletContextApplicationContextInitializer(servletContext));
   application.contextClass(AnnotationConfigEmbeddedWebApplicationContext.class);
   return (WebApplicationContext) application.run();
 }