Spring Bootでは、GradleやMavenを使って依存性にspring-boot-starter-web
を追加するだけで組み込みWebサーバ(Tomcat)が自動起動するので便利です。ただ、RestTemplateのようなHTTPクライアントを利用するだけであれば、spring-boot-starter-web
は必要ですが、Webサーバの起動は不要です。
そこで、Spring Bootで組み込みWebサーバの自動起動を無効化する方法をメモしておきます。
Webサーバの自動起動を無効化する方法
application.properties
に以下を設定すればOKです。
以下のように、Spring Boot 2.0
より前は、spring.main.web-application-type=none
ではなく、spring.main.web-environment=false
を設定していたようです。
Spring Boot applications can now operate in more modes so spring.main.web-environment property is now deprecated in favor of spring.main.web-application-type that provides more control.
Spring Boot 2.0 Migration Guide · spring-projects/spring-boot Wiki
Spring Boot 2.1.5
で試したところ、spring.main.web-application-type=none
を設定するとWebサーバの自動起動を無効化できましたが、spring.main.web-environment=false
だと無効化できませんでした。
ということで、Spring Boot 2.0
以降は、spring.main.web-application-type=none
を設定するようにしましょう。
まとめ
Spring Bootで組み込みWebサーバの自動起動を無効化する方法でした。