zoukankan      html  css  js  c++  java
  • Spring Boot中以代码方式配置Tomcat

    在Spring Boot2.0以上配置嵌入式Servlet容器时EmbeddedServletContainerCustomizer类不存在,经网络查询发现被WebServerFactoryCustomizer替代.

    Spring Boot 1.0中:

    通用配置举例

    @Component
        public static class CustomServletContainer implements EmbeddedServletContainerCustomizer{
         @Override
            public void customize(ConfigurableEmbeddedServletContainer container) {
                container.setPort(8888);//配置端口
                container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/404.html"));//配置错误页面
                container.setSessionTimeout(10,TimeUnit.MINUTES);//配置用户会话过期时间
            }
         
        }

    特定配置举例

    以Tomcat为例。
     @Bean
        public EmbeddedServletContainerFactory servletContainer() {
            TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
            factory.setPort(8888);
            factory.setSessionTimeout(10, TimeUnit.MINUTES);
            factory.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/404.html"));
            return factory;
        }

    在springboot2.0之后

    @FunctionalInterface
    public interface WebServerFactoryCustomizer<T extends WebServerFactory> {
        void customize(T factory);
    }
    package springboot.configure;
    
    import org.springframework.boot.web.server.ConfigurableWebServerFactory;
    import org.springframework.boot.web.server.ErrorPage;
    import org.springframework.boot.web.server.WebServerFactoryCustomizer;
    import org.springframework.http.HttpStatus;
    import org.springframework.stereotype.Component;
    @Component
    public class CustomServletContainer implements WebServerFactoryCustomizer<ConfigurableWebServerFactory>{
    @Override
        public void customize(ConfigurableWebServerFactory factory) {
            factory.setPort(8888);
            factory.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND,"/404.html"));
        }
    
    }
    @Bean
    public ConfigurableServletWebServerFactory webServerFactory() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
        factory.setPort(9000);
        factory.setUriEncoding();//只能设置session,session过期时间只能在配置文件中配置
        return factory;
    }
  • 相关阅读:
    如何将应用安装到/system/app下
    WPF Perf: RenderCapability.Tier & DesiredFrameRate
    DataGridComboBoxColumn为什么就不能在Binding的时候引用其他Named Element了呢?
    A366T使用技巧
    在XAML里面引用枚举值的注意点
    高斯消元bzoj1013球形空间产生器
    欧拉函数bzoj2818简单推导
    链剖进阶ing填坑NOIP2013货车运输
    .net 2.0 BackgroundWorker 文章三篇
    19号晚21号上午
  • 原文地址:https://www.cnblogs.com/zouhong/p/11871796.html
Copyright © 2011-2022 走看看