1. Federschuh-Anpassung und Optimierung integrierter Tomcat-Behälter.
> Es gibt drei eingebaute Container, nämlich Totow, Steg, Tomcat und Spring Stiefel. Diese drei Behälter werden separat implementiert. Die oberen Schnittstellen sind alle eingebettete ServletContainerFactory, was auch der Hauptkern dieses Artikels ist.
Es gibt zwei Hauptmöglichkeiten, um integrierte Behälter anzupassen und zu optimieren. Der erste Weg besteht darin, sie über Konfigurationsdateien zu konfigurieren, und die andere Möglichkeit besteht darin, Code zu codieren. Als nächstes werden die oben genannten Möglichkeiten hauptsächlich implementiert.
2. Passen Sie Tomcat über Konfigurationsdateien an und optimieren Sie sie
> Für den Kerninhalt der Konfiguration finden Sie in org.springframework.boot.autoconfigure.web.ServerProperties Service Attributklasse. Das Folgende zeigt eine gewisse Konfiguration von Tomcat
Server: Port: 8081 # Tomcat setzen
Weitere Konfigurationsinhalte finden Sie in den integrierten Eigenschaften der org.springframework.boot.autoconfigure.Web.ServerProperties-Klasse.
3. Implementieren Sie die Konfiguration und Optimierung integrierter Container über Codecode
> Es gibt zwei Möglichkeiten, die integrierte Containeroptimierung und -anpassung mithilfe von Code anzuzeigen. Die erste besteht darin, den integrierten Servlet Container Customizer (org.springframework.boot.context.Embeded.EmbeddedServletContainerCustomizer) zu implementieren und die Klasse an Spring Container-Management zu übergeben. Das andere besteht darin, die implementierende Schnittstellenklasse der eingebetteten servletContainerFactory -Schnittstelle im Federcontainer zu konfigurieren. Hier zielen wir hauptsächlich auf den eingebauten Tomcat ab, dh tomcatembeddedServletContainerFactory-Klasse
3.1. Die erste Methode ist die Implementierung der EmbeddedServletContainerCustomizer -Schnittstelle und übergeben Sie sie an Spring Container Management
@Componentpublic class MyEmbeddedServletContainerCustomizer implements EmbeddedServletContainerCustomizer { @Override public void customize(ConfigurableEmbeddedServletContainer container) { //org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory //Instruction that the Standard ist tomcat container system.out.println (container.getClass ()); TomcatembeddedServletContainerFactory Factory = (TomcatembeddedServletContainerFactory) Container; // Port Factory.setport (8088) festlegen; // Tomcat Root Directory Factory.setBasedirectory (neue Datei ("d:/tmp/tomcat") festlegen; // Setzen Sie das Access -Protokollspeicherverzeichnis Factory.addContextValves (getLogaCcessLogValue ()); // Tomcat -Threads und Connections Factory.AddConnectorCustomizers (neue mytomcatConnectorCustomizer ()) festlegen; // Initialisieren Sie die ServletContext -Objektfabrik. } 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"); AccessLogValve zurückgeben; }}/*** Passen Sie die Anzahl der Verbindungen und Threads von Tomcat an*/Klasse mytomcatConnectorCustomizer implementiert TomcatConnectorCustomizer {@Override public void Customize (Connector Connector) {// Connection Protocol HTTP/1.1 System.out.println (connector.getProtokoll (). // Verbindungsprotokollprozessor org.apache.coyote.http11.http11nioprotocol System.out.println (Connector.getProtocolHandler (). GetClass ()); // http11nioprotocol http11nioprotocol ProtocolHandler = (http11nioprotocol) Connector.getProtocolHandler (); // Die maximale Anzahl von Verbindungen ProtocolHandler.SetMaxConnections (2000) festlegen; // Die maximale Anzahl von Threads ProtocolHandler.SetMaxThreads (500) festlegen; }}3.1. Konfigurieren Sie die implementierende Implementierungsklasse der EmbeddedServletContainerFactory im Federbehälter
@SpringBootConfigurationPublic Class WebServerConfiguration {@Bean public EmbeddedServletContainerFactory EmbeddedServletContainerFactory () {tomcatembeddedServletContainerFactory factory = new tomcatembeddedServLetContAnerFactory (); // Port Factory.setport (8089) festlegen; // Setzen Sie 404 Fehlerschnittstellenfactory.AldderRorpages (neue Fehlerpage (httpstatus.not_found, "/404.html"); // Setzen Sie die factory.addinitializer ((servletContext) -> {System.out.println ("= = = = Get Server Information =" + ServletContext.getServerInfo ());}); // Setzen Sie die maximale Anzahl von Verbindungen und maximale Anzahl von Threads Factory. }); // Setzen Sie das Verzeichnis, in dem die Protokollierungsdatei auf factory zugegriffen wird. Rückgabefabrik; } 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"); AccessLogValve zurückgeben; }}4. Zusammenfassung
Das obige ist eine detaillierte Erklärung der integrierten Beispiele für die Anpassung und Optimierung des Tomcat-Containers für Sie vorgelegt. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!