类org.springframework.boot.web.servlet.ServletContextInitializer源码实例Demo

下面列出了怎么用org.springframework.boot.web.servlet.ServletContextInitializer的API类实例代码及写法,或者点击链接到github查看源代码。

@Override
public EmbeddedServletContainer getEmbeddedServletContainer(ServletContextInitializer... initializers) {
    ClassLoader parentClassLoader = resourceLoader != null ? resourceLoader.getClassLoader() : ClassUtils.getDefaultClassLoader();
    Package nettyPackage = Bootstrap.class.getPackage();
    String title = nettyPackage.getImplementationTitle();
    String version = nettyPackage.getImplementationVersion();
    logger.info("Running with " + title + " " + version);
    NettyEmbeddedContext context = new NettyEmbeddedContext(nettyContainerConfig,getContextPath(),
            new URLClassLoader(new URL[]{}, parentClassLoader),
            SERVER_INFO);
    if (isRegisterDefaultServlet()) {
        logger.warn("This container does not support a default servlet");
    }
    for (ServletContextInitializer initializer : initializers) {
        try {
            initializer.onStartup(context);
        } catch (ServletException e) {
            throw new RuntimeException(e);
        }
    }
    logger.info("nettyContainerConfig :"+nettyContainerConfig.toString());
    return new NettyEmbeddedServletContainer(nettyContainerConfig, context);
}
 
源代码2 项目: layui-admin   文件: LayuiAdminStartUp.java
@Bean
public ServletWebServerFactory servletContainer() {
    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
    tomcat.addInitializers(new ServletContextInitializer(){
        @Override
        public void onStartup(ServletContext servletContext) throws ServletException {
            XmlWebApplicationContext context = new XmlWebApplicationContext();
            context.setConfigLocations(new String[]{"classpath:applicationContext-springmvc.xml"});
            DispatcherServlet dispatcherServlet = new DispatcherServlet(context);
            ServletRegistration.Dynamic dispatcher = servletContext
                    .addServlet("dispatcher", dispatcherServlet);

            dispatcher.setLoadOnStartup(1);
            dispatcher.addMapping("/");
        }
    });
    tomcat.setContextPath("/manager");
    tomcat.addTldSkipPatterns("xercesImpl.jar","xml-apis.jar","serializer.jar");
    tomcat.setPort(port);

    return tomcat;
}
 
源代码3 项目: logging-log4j-audit   文件: WebAppInitializer.java
@Bean
public ServletContextInitializer initializer() {
    return servletContext -> {
        LOGGER.info("Starting Audit Catalog Editor");
        servletContext.setInitParameter("applicationName", APPLICATION_NAME);
        ProfileUtil.setActiveProfile(servletContext);
        servletContext.setInitParameter("isEmbedded", "true");
        System.setProperty("applicationName", APPLICATION_NAME);
        //AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
        //rootContext.setDisplayName(APPLICATION_NAME);
        //rootContext.register(WebMvcAppContext.class);
        //servletContext.addListener(new ContextLoaderListener(rootContext));

        //ServletRegistration.Dynamic restServlet = servletContext.addServlet("dispatcherServlet", new DispatcherServlet(rootContext));
        //restServlet.setLoadOnStartup(1);
        //restServlet.addMapping("/*");
    };
}
 
@Override
public WebServer getWebServer(ServletContextInitializer... initializers) {
    if (embeddedServerService == null) {
        return super.getWebServer(initializers);
    } else if (embeddedServerService.getEmbedServer() == null) {
        embeddedServerService.setEmbedServer(initEmbedTomcat());
    }
    Tomcat embedTomcat = embeddedServerService.getEmbedServer();
    prepareContext(embedTomcat.getHost(), initializers);
    return getWebServer(embedTomcat);
}
 
@Override
protected void prepareContext(Host host, ServletContextInitializer[] initializers) {
    if (host.getState() == LifecycleState.NEW) {
        super.prepareContext(host, initializers);
    } else {
        File documentRoot = getValidDocumentRoot();
        StandardContext context = new StandardContext();
        if (documentRoot != null) {
            context.setResources(new StandardRoot(context));
        }
        context.setName(getContextPath());
        context.setDisplayName(getDisplayName());
        context.setPath(getContextPath());
        File docBase = (documentRoot != null) ? documentRoot : createTempDir("tomcat-docbase");
        context.setDocBase(docBase.getAbsolutePath());
        context.addLifecycleListener(new Tomcat.FixContextListener());
        context.setParentClassLoader(Thread.currentThread().getContextClassLoader());
        resetDefaultLocaleMapping(context);
        addLocaleMappings(context);
        context.setUseRelativeRedirects(false);
        configureTldSkipPatterns(context);
        WebappLoader loader = new WebappLoader(context.getParentClassLoader());
        loader
            .setLoaderClass("com.alipay.sofa.ark.web.embed.tomcat.ArkTomcatEmbeddedWebappClassLoader");
        loader.setDelegate(true);
        context.setLoader(loader);
        if (isRegisterDefaultServlet()) {
            addDefaultServlet(context);
        }
        if (shouldRegisterJspServlet()) {
            addJspServlet(context);
            addJasperInitializer(context);
        }
        context.addLifecycleListener(new StaticResourceConfigurer(context));
        ServletContextInitializer[] initializersToUse = mergeInitializers(initializers);
        context.setParent(host);
        configureContext(context, initializersToUse);
        host.addChild(context);
    }
}
 
/**
 * Get servlet container
 * @param initializers Initialize the
 * @return NettyTcpServer
 */
@Override
public WebServer getWebServer(ServletContextInitializer... initializers) {
    ServletContext servletContext = Objects.requireNonNull(getServletContext());
    try {
        //The default servlet
        if (super.isRegisterDefaultServlet()) {
            servletContext.addServlet("default",new ServletDefaultHttpServlet())
                    .addMapping("/");
        }

        //JSP is not supported
        if(super.shouldRegisterJspServlet()){
            Jsp jsp = getJsp();
        }

        //Initialize the
        for (ServletContextInitializer initializer : super.mergeInitializers(initializers)) {
            initializer.onStartup(servletContext);
        }

        //Server port
        InetSocketAddress serverAddress = getServerSocketAddress(getAddress(),getPort());
        return new NettyTcpServer(serverAddress, properties, protocolHandlers,serverListeners,channelHandlerSupplier);
    }catch (Exception e){
        throw new IllegalStateException(e.getMessage(),e);
    }
}
 
源代码7 项目: zkspringboot   文件: ZkMaxAutoConfiguration.java
@Bean
public ServletContextInitializer manualServletConfigInit() {
	return servletContext -> {
		//required to avoid duplicate installing of the CometAsyncServlet
		//startup sequence in spring boot is different to a normal servlet webapp
		servletContext.setAttribute("org.zkoss.zkmax.ui.comet.async.installed", true);
		servletContext.setAttribute("org.zkoss.zkmax.au.websocket.filter.installed", true);
	};
}
 
@Override
public EmbeddedServletContainer getEmbeddedServletContainer(ServletContextInitializer... initializers) {
    ClassLoader parentClassLoader = resourceLoader != null ? resourceLoader.getClassLoader() : ClassUtils.getDefaultClassLoader();
    //Netty启动环境相关信息
    Package nettyPackage = Bootstrap.class.getPackage();
    String title = nettyPackage.getImplementationTitle();
    String version = nettyPackage.getImplementationVersion();
    log.info("Running with " + title + " " + version);
    //是否支持默认Servlet
    if (isRegisterDefaultServlet()) {
        log.warn("This container does not support a default servlet");
    }
    //上下文
    NettyContext context = new NettyContext(getContextPath(), new URLClassLoader(new URL[]{}, parentClassLoader), SERVER_INFO);
    for (ServletContextInitializer initializer : initializers) {
        try {
            initializer.onStartup(context);
        } catch (ServletException e) {
            throw new RuntimeException(e);
        }
    }
    //从SpringBoot配置中获取端口,如果没有则随机生成
    int port = getPort() > 0 ? getPort() : new Random().nextInt(65535 - 1024) + 1024;
    InetSocketAddress address = new InetSocketAddress(port);
    log.info("Server initialized with port: " + port);
    return new NettyContainer(address, context); //初始化容器并返回
}
 
源代码9 项目: apollo   文件: WebContextConfiguration.java
@Bean
public ServletContextInitializer servletContextInitializer() {
  return servletContext -> {
    String loggingServerIP = portalConfig.cloggingUrl();
    String loggingServerPort = portalConfig.cloggingPort();
    String credisServiceUrl = portalConfig.credisServiceUrl();

    servletContext.setInitParameter("loggingServerIP",
        Strings.isNullOrEmpty(loggingServerIP) ? "" : loggingServerIP);
    servletContext.setInitParameter("loggingServerPort",
        Strings.isNullOrEmpty(loggingServerPort) ? "" : loggingServerPort);
    servletContext.setInitParameter("credisServiceUrl",
        Strings.isNullOrEmpty(credisServiceUrl) ? "" : credisServiceUrl);
  };
}
 
/**
 * PrimefacesFileUploadServletContextInitializer for native uploader,
 * since {@link FileUploadFilter} suffices for commons file uploader.
 *
 * @param multipartConfigElement {@link MultipartAutoConfiguration#multipartConfigElement()}
 * @return primefaces file upload servlet context initializer
 */
@ConditionalOnExpression("'${joinfaces.primefaces.uploader}' != 'commons'")
@Bean
public ServletContextInitializer primefacesFileUploadServletContextInitializer(MultipartConfigElement multipartConfigElement) {
	return servletContext -> {
		ServletRegistration servletRegistration = servletContext.getServletRegistration(FACES_SERVLET_NAME);
		if (servletRegistration instanceof ServletRegistration.Dynamic) {
			((ServletRegistration.Dynamic) servletRegistration).setMultipartConfig(multipartConfigElement);
		}
	};
}
 
@Override
public WebServer getWebServer(ServletContextInitializer... initializers) {
    this.initializers = initializers;
    for (ServletContextInitializer i : initializers) {
        try {
            if (handler.getServletContext() == null) {
                throw new WebServerException("Attempting to initialize ServletEmbeddedWebServer without ServletContext in Handler", null);
            }
            i.onStartup(handler.getServletContext());
        } catch (ServletException e) {
            throw new WebServerException("Could not initialize Servlets", e);
        }
    }
    return this;
}
 
@Test
public void getWebServer_callsInitializers() {
    ServerlessServletEmbeddedServerFactory factory = new ServerlessServletEmbeddedServerFactory();
    factory.getWebServer(new ServletContextInitializer() {
        @Override
        public void onStartup(ServletContext servletContext) throws ServletException {
            if (servletContext == null) {
                fail("Null servlet context");
            }
        }
    });
}
 
@Override
public void start() throws EmbeddedServletContainerException {
    for (ServletContextInitializer i : initializers) {
        try {
            if (handler.getServletContext() == null) {
                throw new EmbeddedServletContainerException("Attempting to initialize ServletEmbeddedWebServer without ServletContext in Handler", null);
            }
            i.onStartup(handler.getServletContext());
        } catch (ServletException e) {
            throw new EmbeddedServletContainerException("Could not initialize Servlets", e);
        }
    }
}
 
源代码14 项目: funcatron   文件: MockServer.java
@Override
public EmbeddedServletContainer getEmbeddedServletContainer(
        ServletContextInitializer... initializers) {
    this.container = new MockEmbeddedServletContainer(
            mergeInitializers(initializers), getPort());
    return this.container;
}
 
源代码15 项目: codenjoy   文件: WebContextConfiguration.java
@Bean
public ServletContextInitializer servletContextInitializer() {
    return context -> context.setAttribute(
            JarScanner.class.getName(),
            new StandardJarScanner() {{
                setScanManifest(false);
            }}
    );
}
 
源代码16 项目: alf.io   文件: SpringBootInitializer.java
@Bean
public ServletContextInitializer servletContextInitializer() {
    return servletContext -> {
        WebApplicationContext ctx = getRequiredWebApplicationContext(servletContext);
        ConfigurableEnvironment environment = ctx.getBean(ConfigurableEnvironment.class);
        SessionCookieConfig config = servletContext.getSessionCookieConfig();
        config.setHttpOnly(true);
        config.setSecure(environment.acceptsProfiles(Profiles.of(Initializer.PROFILE_LIVE)));
        // force log initialization, then disable it
        XRLog.setLevel(XRLog.EXCEPTION, Level.WARNING);
        XRLog.setLoggingEnabled(false);
    };
}
 
@Bean
public ServletContextInitializer servletContextInitializer() {
    return (servletContext) ->
            servletContext.setInitParameter("web-app-name", "Externalized Configuration Web");
}
 
@Override
public WebServer getWebServer(ServletContextInitializer... initializers) {
	this.webServer = spy(new MockServletWebServer(mergeInitializers(initializers), getPort()));
	return this.webServer;
}
 
public MockServletWebServer(ServletContextInitializer[] initializers, int port) {
	super(Arrays.stream(initializers).map((initializer) -> (Initializer) initializer::onStartup)
			.toArray(Initializer[]::new), port);
}
 
源代码20 项目: zhcet-web   文件: SentryConfiguration.java
@Bean
public ServletContextInitializer sentryServletContextInitializer() {
    return new io.sentry.spring.SentryServletContextInitializer();
}
 
@Bean
@ConditionalOnBean(ServletContextInitParameterProperties.class)
public ServletContextInitializer servletContextInitParameterInitializer(List<ServletContextInitParameterProperties> initParameterProperties) {
	return new InitParameterServletContextConfigurer(initParameterProperties);
}
 
@Override
public EmbeddedServletContainer getEmbeddedServletContainer(ServletContextInitializer... servletContextInitializers) {
    initializers = servletContextInitializers;

    return this;
}
 
ServletContextInitializer[] getInitializers() {
    return initializers;
}
 
源代码24 项目: funcatron   文件: MockServer.java
public MockEmbeddedServletContainer(ServletContextInitializer[] initializers, int port) {
    this.initializers = initializers;
    this.port = port;
    initialize();
}
 
源代码25 项目: oncokb   文件: MvcConfiguration.java
@Bean
public ServletContextInitializer sentryServletContextInitializer() {
    return new io.sentry.spring.SentryServletContextInitializer();
}
 
@Override
public WebServer getWebServer(ServletContextInitializer... initializers) {
    return new LealoneTomcatWebServer(super.getWebServer(initializers));
}
 
 类所在包
 类方法
 同包方法