Как предотвратить автоматический запуск 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 поддерживает реактивный сервер.