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;
    }
  • 相关阅读:
    ReactNative: 使用分组列表组件SectionList组件
    ReactNative: 使用刷新组件RefreshControl组件
    ReactNative: 使用开关组件Switch组件
    ReactNative: 使用滑块组件Slider组件
    ReactNative: 使用分段组件SegmentedControlIOS组件
    ReactNative: 使用进度条组件ProgressViewIOS组件
    Swift语言实战晋级
    《Swift开发指南》
    《数据结构与算法JavaScript描述》
    《ASP.NET MVC 5 框架揭秘》
  • 原文地址:https://www.cnblogs.com/zouhong/p/11871796.html
Copyright © 2011-2022 走看看