2015-08-08 11 views
15

voglio usare RestTemplate/TestRestTemplate includendo l'artefatto in un'applicazione SpringBootCome prevenire l'inizio auto di tomcat/pontile in primavera di avvio in cui solo voglio usare RestTemplate

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

Ma questo si avvia automaticamente Tomcat o Molo. C'è un modo per disattivarlo o non includendo l'artefatto di cui sopra. TestRestTemplate si trova nel file di avvio, ma non nel RestTemplate di base.

+0

Per caso hai il riferimento di spring-boot-starter-web? Perché questo attira automaticamente il tomcat come dipendenza. –

+0

No, non uso spring-boot-starter-web. Ecco perché ho aggiunto invece spring-web. – datree

+0

Qual è il tipo di applicazione? Si tratta di un'applicazione Web o di riga di comando o di pianificazione? Inoltre, puoi condividere la classe principale dell'applicazione e il file pom come riferimento? Ho un'applicazione di esempio che è un'applicazione della riga di comando e non trascina tomcat come dipendenza. –

risposta

32

Spring Boot non avvierà un contenitore Web se non è presente. spring-web non fornisce alcun contenitore incorporato. Potresti voler analizzare le dipendenze del tuo progetto (prova mvn dependency:tree).

Se si vuole fare in modo di un server Web non viene avviato nell'applicazione di avvio di primavera, è possibile impostare la seguente configurazione chiave

spring.main.web-environment=false 

oppure è possibile utilizzare il SpringApplicationBuilder

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

Dal Spring Boot 2.0.0 questa proprietà è deprecata e il seguente è il nuovo modo:

spring.main.web-application-type=none 

Questo cambiamento è dovuto al fatto che Spring Avvia il supporto per reactive server.

Problemi correlati