ホームページ >Java >&#&チュートリアル >SpringBoot組み込みWebコンテナの使用方法

SpringBoot組み込みWebコンテナの使用方法

PHPz
PHPz転載
2023-05-13 23:34:041543ブラウズ

組み込み Web コンテナ: アプリケーションにサーバー (Tomcat) が組み込まれており、外部からサーバーを構成する必要はありません

原則

  • SpringBoot プロジェクトが開始され、 Web シナリオ パッケージの紹介 ----- 例: Tomcat

  • Web アプリケーションは、IOC コンテナの Web バージョンを作成します。ServletWebServerApplicationContext

  • 開始時の ServletWebServerApplicationContext ServletWebServerFactory (サーブレット サーバーの生成に使用されるサーブレットの Web サーバー ファクトリ)を探します

  • ServletWebServerFactory デフォルトでは下部に多数の Web サーバー ファクトリがあります

SpringBoot組み込みWebコンテナの使用方法

  • #最下層の自動構成クラス ServletWebServerFactoryAutoConfiguration

  • ServletWebServerFactoryAutoConfiguration は、ServletWebServerFactoryConfiguration ファクトリ構成クラスをインポートします。

#ServletWebServerFactoryConfiguration.class

SpringBoot組み込みWebコンテナの使用方法

  • どの Web かを動的に決定しますサーバー構成パッケージがシステムにインポートされます

  • #Tomcat の依存関係をインポートすると Tomcat サーバー ファクトリが自動的に配置されます。TomcatServletWebServerFactory が Tomcat サーバー ファクトリを作成します
  • Tomcat の最下層は次のサーバーをサポートします

	@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);
	}
SpringBoot組み込みWebコンテナの使用方法要約: いわゆる組み込みサーバーは、サーバーを手動で起動する方法を組み込みます。枠組み。

アプリケーション

1. Webサーバーの切り替え

Tomcatサーバーを除外し、undertow依存関係をインポート

       <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>

2. サーバールールをカスタマイズ

メソッド1: サーバー

#ServerProperties.class

server.undertow.accesslog.dir=/tmpSpringBoot組み込みWebコンテナの使用方法## の下の構成ファイルを変更します。

#方法 2: ConfigurableServletWebServerFactory をカスタマイズする

方法 3: ServletWebServerFactoryCustomizer カスタマイザーをカスタマイズする

関数: 構成ファイルの値を ServletWebServerFactory にバインドする

SpringBoot 設計: カスタマイザー、あなたXXX ルールをカスタマイズできます

以上がSpringBoot組み込みWebコンテナの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。