복붙노트

[SPRING] 스프링 부트와 임베디드 Tomcat으로이 속성을 어떻게 구성합니까?

SPRING

스프링 부트와 임베디드 Tomcat으로이 속성을 어떻게 구성합니까?

application.properties 파일에서 connectionTimeout과 같은 속성을 구성합니까, 아니면 다른 곳에서 할 수 있습니까? 나는 Google에서 이것을 이해할 수 없다.

Tomcat 등록 정보 목록

이 Spring-Boot 예제를 찾았지만 connectionTimeout 속성은 포함되어 있지 않습니다. application.properties 파일에서 server.tomcat.connectionTimeout = 60000을 설정하면 오류가 발생합니다.

해결법

  1. ==============================

    1.Spring Boot 1.4부터 server.connection-timeout 속성을 사용할 수 있습니다. 스프링 부트의 일반적인 애플리케이션 특성을 보라.

    Spring Boot 1.4부터 server.connection-timeout 속성을 사용할 수 있습니다. 스프링 부트의 일반적인 애플리케이션 특성을 보라.

    사용자 정의 된 EmbeddedServletContainerFactory 빈을 제공하십시오.

    @Bean
    public EmbeddedServletContainerFactory servletContainerFactory() {
        TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
    
        factory.addConnectorCustomizers(connector -> 
                ((AbstractProtocol) connector.getProtocolHandler()).setConnectionTimeout(10000));
    
        // configure some more properties
    
        return factory;
    }
    

    Java 8을 사용하지 않거나 Lambda Expressions를 사용하지 않으려면 다음과 같이 TomcatConnectorCustomizer를 추가하십시오.

        factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
            @Override
            public void customize(Connector connector) {
                ((AbstractProtocol) connector.getProtocolHandler()).setConnectionTimeout(10000);
            }
        });
    

    setConnectionTimeout () 메소드는 제한 시간 (밀리 초)을 요구합니다 (Apache Tomcat 8 Configuration Reference의 connectionTimeout 참조).

  2. ==============================

    2.서버를 시작하기 전에 시스템 속성 집합을 선호합니다.

    서버를 시작하기 전에 시스템 속성 집합을 선호합니다.

    /**
     * Start SpringBoot server
     */
    @SpringBootApplication(scanBasePackages= {"com.your.conf.package"})
    //@ComponentScan(basePackages = "com.your.conf.package")
    public class Application {
        public static void main(String[] args) throws Exception {
            System.setProperty("server.port","8132"));
            System.setProperty("server.tomcat.max-threads","200");
            System.setProperty("server.connection-timeout","60000");
            ApplicationContext ctx = SpringApplication.run(Application.class, args);
        }
    }
    
  3. ==============================

    3.실제로는 application.properties에서 server.connection-timeout이되어야합니다. 참조, 당신이 그것을 북마크하는 것이 좋습니다.

    실제로는 application.properties에서 server.connection-timeout이되어야합니다. 참조, 당신이 그것을 북마크하는 것이 좋습니다.

  4. from https://stackoverflow.com/questions/31461444/how-do-i-configure-this-property-with-spring-boot-and-an-embedded-tomcat by cc-by-sa and MIT license