SpringBoot 내 장 된 Tomcat 설정
6411 단어 SpringBoot
\ # \ # \ # 1. 자주 사용 하 는 설정
server:
# http
port: 8080
# tomcat
tomcat:
#
max-threads: 6
#
min-spare-threads: 3
#
accept-count: 10
#
max-connections: 1000
#
connection-timeout: 10000
2. 내 장 된 설정 적용 절차
ServerProperties
을 통 해 설정 을 읽 을 수 있 으 며, 이러한 속성 에 따라 yml 파일 의 설정 필드 를 반추 할 수 있 습 니 다.EmbeddedServletContainerCustomizerBeanPostProcessor
을 통 해 yml 프로필 에 설 치 된 설정 과 TomcatEmbeddedServletContainerFactory
를 연결 합 니 다.바 인 딩 의 구체 적 인 과정 은 다음 과 같다. 여기 서 마지막 으로 ServerProperties
의 customize
방법 을 호출 할 것 이다. 이 방법 은 바 인 딩 의 구체 적 인 집행 자 이 고 ConfigurableEmbeddedServletContainer
를 실제 TomcatEmbeddedServletContainerFactory
방법 에 던 져 서 우리 가 yml 에서 읽 은 설정 을 층 층 이 설정 하 는 것 이다.주의 하 세 요. 이곳 의 사고방식 은 참고 할 만 한 가치 가 있 습 니 다. 우 리 는 설정 파일 을 하나 가지 고 있 습 니 다. 또한 대상 이 값 속성 을 부여 해 야 할 때 하나의 방법 을 제공 하여 값 을 매개 변수 로 넣 을 수 있 습 니 다 TomcatEmbeddedServletContainerFactory
은 getEmbedded ServletContainer 방법 으로 초기 화 됩 니 다. 처음에 얻 은 것 은 기본 connector 입 니 다. 마찬가지 로 customizeConnector
방법 으로 우리 가 앞에서 설정 한 매개 변 수 를 초기 화하 여 완성 합 니 다.3. 클래스 로 직접 설정
클래스 로 직접 설정 하 는 방법 은 세 가지 가 있 지만 위의 파일 설정 과 혼용 하지 않도록 주의해 야 합 니 다.
import org.apache.catalina.connector.Connector;
import org.apache.coyote.http11.Http11NioProtocol;
import org.springframework.boot.context.embedded.EmbeddedServletContainer;
import org.springframework.boot.context.embedded.ServletContextInitializer;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.stereotype.Component;
@Component()
public class MyEmbeddedServletContainerFactory extends TomcatEmbeddedServletContainerFactory
{
public EmbeddedServletContainer getEmbeddedServletContainer(ServletContextInitializer... initializers)
{
//
this.setPort(8081);
return super.getEmbeddedServletContainer(initializers);
}
protected void customizeConnector(Connector connector)
{
super.customizeConnector(connector);
Http11NioProtocol protocol = (Http11NioProtocol)connector.getProtocolHandler();
//
protocol.setMaxConnections(2000);
//
protocol.setMaxThreads(2000);
protocol.setConnectionTimeout(30000);
}
}
import org.apache.catalina.connector.Connector;
import org.apache.coyote.http11.Http11NioProtocol;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatConnectorCustomizer;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class WebServerConfiguration
{
@Bean
public EmbeddedServletContainerFactory createEmbeddedServletContainerFactory()
{
TomcatEmbeddedServletContainerFactory tomcatFactory = new TomcatEmbeddedServletContainerFactory();
tomcatFactory.setPort(8081);
tomcatFactory.addConnectorCustomizers(new MyTomcatConnectorCustomizer());
return tomcatFactory;
}
}
class MyTomcatConnectorCustomizer implements TomcatConnectorCustomizer
{
public void customize(Connector connector)
{
Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
//
protocol.setMaxConnections(2000);
//
protocol.setMaxThreads(2000);
protocol.setConnectionTimeout(30000);
}
}
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class WebServerConfiguration
{
@Bean
public EmbeddedServletContainerCustomizer createEmbeddedServletContainerCustomizer()
{
return new MyEmbeddedServletContainerCustomizer();
}
}
class MyEmbeddedServletContainerCustomizer implements EmbeddedServletContainerCustomizer
{
public void customize(ConfigurableEmbeddedServletContainer container)
{
TomcatEmbeddedServletContainerFactory tomcatFactory = (TomcatEmbeddedServletContainerFactory)container;
tomcatFactory.setPort(8081);
//
}
}
위의 세 가지 방법 을 통 해 알 수 있 듯 이 실제 대동소이 하고 핵심 적 인 사 고 는 바로 개작
TomcatEmbeddedServletContainerFactory
중의 관련 배치 이다.하 나 는 상속 TomcatEmbeddedServletContainerFactory
이 고, 다른 하 나 는 직접 자신의 new 하나 이 며, 세 번 째 는 교체 EmbeddedServletContainerCustomizer
이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java・SpringBoot・Thymeleaf】 에러 메세지를 구현(SpringBoot 어플리케이션 실천편 3)로그인하여 사용자 목록을 표시하는 응용 프로그램을 만들고, Spring에서의 개발에 대해 공부하겠습니다 🌟 마지막 데이터 바인딩에 계속 바인딩 실패 시 오류 메시지를 구현합니다. 마지막 기사🌟 src/main/res...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.