2015-08-08 1 views
15

Я хочу использовать RestTemplate/TestRestTemplate, включив артефакт в приложении SpringBootКак предотвратить автоматический запуск TOMCAT/причалу в Spring ботинке, когда я только хочу, чтобы использовать RestTemplate

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

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

+0

. У вас есть ссылка на spring-boot-starter-web? Потому что это автоматически вытаскивает tomcat как зависимость. –

+0

Нет. Я не использую весеннюю загрузку-стартер. Вот почему я добавил Spring-web вместо этого. – datree

+0

Какой тип вашего приложения? Это веб-приложение или командная строка или приложение на основе планировщика? Кроме того, вы можете поделиться основным классом приложения и pom-файлом для справки? У меня есть пример приложения, которое является приложением командной строки и не тянет tomcat как зависимость. –

ответ

32

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

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

spring.main.web-environment=false 

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

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

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

spring.main.web-application-type=none 

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