Heim > Java > javaLernprogramm > So verwenden Sie den eingebetteten SpringBoot-Webcontainer

So verwenden Sie den eingebetteten SpringBoot-Webcontainer

PHPz
Freigeben: 2023-05-13 23:34:04
nach vorne
1550 Leute haben es durchsucht

Eingebetteter Webcontainer: Der Server (Tomcat) ist in die Anwendung integriert und es ist nicht erforderlich, den Server extern zu konfigurieren.

Prinzip

  • Das SpringBoot-Projekt wird gestartet und es wird festgestellt, dass es sich um eine Webanwendung handelt. und das Web-Szenario-Paket wird eingeführt -----wie: Tomcat

  • Die Webanwendung erstellt eine Webversion des IOC-Containers ServletWebServerApplicationContext

  • ServletWebServerApplicationContext. Suchen Sie beim Start nach der ServletWebServerFactory (Servlets Webserver-Factory). , wird zum Erstellen von Servlet-Servern verwendet)

  • ServletWebServerFactory Unten befinden sich standardmäßig viele Webserver-Factorys

So verwenden Sie den eingebetteten SpringBoot-Webcontainer

  • Die untere Ebene wird automatisch konfiguriert. Die automatische Konfigurationsklasse ServletWebServerFactoryAutoConfiguration

  • ServletWebServerFactoryAutoConfiguration importiert die ServletWebServerFactoryConfiguration-Factory-Konfigurationsklasse

ServletWebServerFactoryConfiguration.

So verwenden Sie den eingebetteten SpringBoot-Webcontainer

  • Bestimmen Sie dynamisch, welche Webserverkonfiguration in das System importiert wird. Wenn das Paket

  • Tomcat-Abhängigkeiten importiert, wird automatisch eine Tomcat-Server-Factory erstellt . TomcatServletWebServerFactory erstellt für uns die Tomcat-Serverfabrik

  • Die unterste Ebene von Tomcat unterstützt die folgenden Server

So verwenden Sie den eingebetteten SpringBoot-Webcontainer

	@Override
	public WebServer getWebServer(ServletContextInitializer... initializers) {
		if (this.disableMBeanRegistry) {
			Registry.disableRegistry();
		}
		Tomcat tomcat = new Tomcat();
		File baseDir = (this.baseDirectory != null) ? this.baseDirectory : createTempDir("tomcat");
		tomcat.setBaseDir(baseDir.getAbsolutePath());
		Connector connector = new Connector(this.protocol);
		connector.setThrowOnFailure(true);
		tomcat.getService().addConnector(connector);
		customizeConnector(connector);
		tomcat.setConnector(connector);
		tomcat.getHost().setAutoDeploy(false);
		configureEngine(tomcat.getEngine());
		for (Connector additionalConnector : this.additionalTomcatConnectors) {
			tomcat.getService().addConnector(additionalConnector);
		}
		prepareContext(tomcat.getHost(), initializers);
		return getTomcatWebServer(tomcat);
	}
Nach dem Login kopieren

Zusammenfassung: Der sogenannte eingebettete Server. Fügen Sie einfach unsere Methode zum manuellen Starten des Servers in das Framework ein.

Anwendung

1. Tomcat-Server ausschließen und Undertow-Abhängigkeit importieren

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-undertow</artifactId>
        </dependency>
Nach dem Login kopieren

2. Serverregeln anpassen

Methode 1: Ändern Sie die Konfigurationsdatei unter server

ServerProperties.class

So verwenden Sie den eingebetteten SpringBoot-Webcontainer

Server .undertow.accesslog.dir=/tmp

Method 2: Customize ConfigurableServletWebServerFactory

Method 3: Customize ServletWebServerFactoryCustomizer Customizer

Function: Bind the value of the configuration file to ServletWebServerFactory

SpringBoot design: Customizer Transformer, you can customize XXX Regeln

Das obige ist der detaillierte Inhalt vonSo verwenden Sie den eingebetteten SpringBoot-Webcontainer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage