Как предотвратить автоматический запуск tomcat/jetty в Spring Boot, когда я хочу использовать RestTemplate

Я хочу использовать RestTemplate/TestRestTemplate, включив артефакт в приложение SpringBoot

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

Но это автоматически запускает Tomcat или Jetty. Есть ли способ отключить его или не включить вышеупомянутый артефакт. TestRestTemplate находится в артефакте загрузки, но не база RestTemplate.

Ответы

Ответ 1

Spring Boot не собирается запускать веб-контейнер, если он не присутствует. spring-web не предоставляет встроенный контейнер. Вы можете проанализировать зависимости вашего проекта (попробуйте mvn dependency:tree).

Если вы хотите, чтобы веб-сервер не запускался в вашем приложении для загрузки весны, вы можете установить следующий ключ конфигурации

spring.main.web-environment=false

Или вы можете использовать SpringApplicationBuilder

new SpringApplicationBuilder(YourApp.class)
        .web(false).run(args);

Ответ 2

Начиная с Spring Boot 2.0.0 это свойство устарело, а следующий - это новый способ:

spring.main.web-application-type=none

Это изменение связано с тем, что Spring Boot поддерживает реактивный сервер.