1. 내장 Tomcat 컨테이너의 스프링 부팅 사용자 정의 및 최적화.
> 3 개의 내장 컨테이너, 즉 Undertow, Jetty, Tomcat 및 Spring Boot가 있습니다. 이 3 개의 컨테이너는 별도로 구현됩니다. 상단 인터페이스는 모두 임베디드 스터 레트로 출력이며,이 기사의 주요 핵심이기도합니다.
내장 컨테이너를 사용자 정의하고 최적화하는 두 가지 주요 방법이 있습니다. 첫 번째 방법은 구성 파일을 통해 구성하는 것이며 다른 방법은 코드 코드입니다. 다음으로 위의 두 가지 방법이 주로 구현됩니다.
2. 구성 파일을 통해 Tomcat을 사용자 정의하고 최적화하십시오
> 구성의 핵심 내용은 org.springframework.boot.autoconfigure.web.serverproperties 서비스 속성 클래스를 참조하십시오. 다음은 Tomcat의 일부 구성을 보여줍니다
서버 : 포트 : 8081 # Tomcat Set Tomcat : ac
자세한 구성 컨텐츠는 org.springframework.boot.autoconfigure.web.serverproperties class의 내장 속성을 참조하십시오.
3. 코드 코드를 통해 내장 컨테이너의 구성 및 최적화 구현
> 내장 컨테이너 최적화 및 코드를 사용하여 사용자 정의를 표시하는 두 가지 방법이 있습니다. 첫 번째는 내장 된 서블릿 컨테이너 커스터마이저 (org.springframework.context.embedded.embeddedservletcontainercustomizer)를 구현하고 클래스를 스프링 컨테이너 관리로 넘겨주는 것입니다. 다른 하나는 Spring 컨테이너에서 EmbeddedServletContainerFactory 인터페이스 구현 클래스를 구성하는 것입니다. 여기서 우리는 주로 내장 Tomcat, 즉 tomcatembeddedservletcontainerfactory 클래스를 대상으로합니다.
3.1. 첫 번째 방법은 EmbeddedServletContainerCustomizer 인터페이스를 구현하여 Spring Container Management에 넘겨주는 것입니다.
@componentpublic class myembeddedservletcontainercustomizer는 EmbleddedServletContainerCustomizer {@override public void customize (configurableEmbeddedServletContainer 컨테이너) {//org.springframewort.context.embedded.tomcat.toMcAtembeddedservletcaTembeddedservletcatembeddedservletcateMbeddedservletcatembedded 기본값은 tomcat 컨테이너 System.out.println (container.getClass ())입니다. tomcatembeddedservletcontainerfactory factory = (tomcatembeddedservletcontainerfactory) 컨테이너; // 포트 팩토리 세트. 세트 포트 (8088); // set tomcat root directory factory.setbasedirectory (새 파일 ( "d :/tmp/tomcat")); // 액세스 로그 스토리지 디렉토리를 설정합니다. ADDCONTEXTVALVES (getLogAccessLogValue ()); // Tomcat 스레드 및 연결 설정 Factory.AddConnectorCustomizers (New MyTomcatConnectorCustomizer ()); // servletContext 객체 aaddinitializers ((servletContext) -> {system.out.println ( "= = = = = =" + servletContext.getServerInfo ());}); } private accessLogValve getLogAccessLogValue () {accessLogValve accessLogValve = new AccessLogValve (); AccessLogValve.SetDirectory ( "D :/TMP/Tomcat/Logs"); AccessLogValve.SetEnabled (true); accessLogValve.setPattern (constants.accesslog.common_pattern); AccessLogValve.setPrefix ( "SpringBoot-Access-Log"); AccessLogValve.setSuffix ( ". txt"); Return AccessLogValve; }}/*** tomcat의 연결 및 스레드를 사용자 정의하십시오*/클래스 mytomcatconnectorcustomizer는 tomcatconnectorcustomizer {@override public void customize (커넥터 커넥터) {// 연결 프로토콜 http/1.1 system.out.out.println (Connector.getProtocol ()); // 연결 프로토콜 프로세서 org.apache.coyote.http11.http11nioprotocol system.out.println (connector.getProtocolhandler (). getClass ()); // http11nioprotocol http11nioprotocol protocolhandler = (http11nioprotocol) connector.getProtocolhandler (); // 최대 연결 수 프로토콜 핸들러를 설정합니다. SETMAXCONNECTION (2000); // 최대 스레드 수 프로토콜 핸들러 수를 설정합니다. SETMAXTHREADS (500); }}3.1. Spring 컨테이너의 내장 된 내장을 포함한 ContainerFactory 구현 클래스를 구성하십시오
@SpringBootConfigurationPublic 클래스 WebServerConfiguration {@Bean Public EmbeddedServletContainerFactory EmbeddedContainerFactory () {TomCatembeddedServletContainerActory Factory = 새로운 TomcatembeddedServletContainerFactory (); // 포트 팩토리 세트. 세트 포트 (8089); // 설정 404 오류 인터페이스 팩토리 aadderrorpages (new ErrorPage (httpstatus.not_found, "/404.html")); // factory.addinitializers를 설정합니다 ((servletcontext) -> {system.out.println ( "= = = = 서버 정보 =" + servletcontext.getServerInfo ());}); // 최대 연결 수와 최대 스레드 수를 설정 aaddConnectorCustomizers ((커넥터) -> {http11nioprotocol protocolhandler = (http11nioprotocol) connector.getProtocolhandler (); protocolhandler.setmaxConnection (2000); protocolhandler.setMaxTheDreds (5); // 로깅 파일에 액세스 할 수있는 디렉토리를 설정합니다 .AddContextValves (getLogaccessLogValue ()); 반품 공장; } private accessLogValve getLogAccessLogValue () {accessLogValve accessLogValve = new AccessLogValve (); AccessLogValve.SetDirectory ( "D :/TMP/Logs"); AccessLogValve.SetEnabled (true); accessLogValve.setPattern (constants.accesslog.common_pattern); AccessLogValve.setPrefix ( "SpringBoot-Access-Log"); AccessLogValve.setSuffix ( ". txt"); Return AccessLogValve; }}4. 요약
위의 내장은 Spring Boot 사용자 정의 및 최적화에 대한 내장 Tomcat 컨테이너 예제에 대한 자세한 설명입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!