Maison  >  Article  >  Java  >  Comment utiliser le conteneur Web intégré SpringBoot

Comment utiliser le conteneur Web intégré SpringBoot

PHPz
PHPzavant
2023-05-13 23:34:041470parcourir

Conteneur Web intégré : Le serveur (Tomcat) est intégré à l'application, et il n'est pas nécessaire de configurer le serveur en externe

Principe

  • Le projet SpringBoot est démarré et il s'avère qu'il s'agit d'une application Web, et le package de scénarios Web est introduit ----- tel que : Tomcat

  • L'application Web crée une version Web du conteneur IOC ServletWebServerApplicationContext

  • ServletWebServerApplicationContext Au démarrage, recherchez ServletWebServerFactory (l'usine de serveur Web de Servlet. , utilisé pour produire des serveurs Servlet)

  • ServletWebServerFactory Il existe de nombreuses usines de serveurs Web en bas par défaut

Comment utiliser le conteneur Web intégré SpringBoot

  • La couche inférieure sera automatiquement configurée, la classe de configuration automatique ServletWebServerFactoryAutoConfiguration

  • ServletWebServerFactoryAutoConfiguration importe la classe de configuration de l'usine ServletWebServerFactoryConfiguration

ServletWebServerFactoryConfiguration class

Comment utiliser le conteneur Web intégré SpringBoot

  • Détermine dynamiquement quelle configuration de serveur Web est importée dans le système. Si le package

  • importe les dépendances Tomcat, il mettra automatiquement une usine de serveur Tomcat. . TomcatServletWebServerFactory crée la fabrique de serveur Tomcat pour nous. Mettez simplement notre méthode de démarrage manuel du serveur dans le framework.

  • Application
  • 1. Changer de serveur Web

  • Exclure le serveur Tomcat et importer la dépendance Undertow
	@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);
	}

2. Personnaliser les règles du serveurComment utiliser le conteneur Web intégré SpringBoot

Méthode 1 : Modifier le fichier de configuration sous le serveur

ServerProperties.class

serveur .undertow.accesslog.dir=/tmp

Méthode 2 : Personnaliser ConfigurableServletWebServerFactory

Méthode 3 : Personnaliser ServletWebServerFactoryCustomizer Customizer

Fonction : Liez la valeur du fichier de configuration à ServletWebServerFactoryComment utiliser le conteneur Web intégré SpringBoot

SpringBoot : Customizer Transformer, vous pouvez personnaliser XXX règles

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer