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サーバの自動起動を無効化する方法でした。