web-dev-qa-db-ja.com

RestTemplateのみを使用したい場合に、Spring BootでTomcat / jettyの自動起動を防ぐ方法

SpringBootアプリケーションにアーティファクトを含めることでRestTemplate/TestRestTemplateを使用したい

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
    </dependency>

ただし、これによりTomcatまたはJettyが自動的に起動します。それをオフにする方法、または上記のアーティファクトを含めない方法はありますか? TestRestTemplateはブートアーティファクトにありますが、ベースのRestTemplateにはありません。

21
datree

Spring Bootは、Webコンテナーが存在しない場合は起動しません。 spring-webは埋め込みコンテナーを提供しません。プロジェクトの依存関係を分析したい場合があります(mvn dependency:tree)。

Spring BootアプリケーションでWebサーバーが起動していないことを確認する場合は、次の構成キーを設定できます

spring.main.web-application-type=none

または、SpringApplicationBuilderを使用できます

new SpringApplicationBuilder(YourApp.class)
        .web(WebApplicationType.NONE).run(args);
40
Stephane Nicoll

Spring Boot 2.0.0以降、このプロパティは非推奨になり、以下が新しい方法です。

spring.main.web-application-type=none

この変更は、Spring Bootが reactive server。 をサポートしているためです。

19
Tony