Search code examples
javaspringspring-bootresttemplate

How to prevent auto start of tomcat/jetty in Spring Boot when I only want to use RestTemplate


I want to use RestTemplate/TestRestTemplate by including the artifact in a SpringBoot application

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

But this automatically starts Tomcat or Jetty. Is there a way to turn it off, or by not including the above artifact. TestRestTemplate is in the boot artifact, but not the base RestTemplate.


Solution

  • Spring Boot is not going to start a web container if it's not present. spring-web does not provide any embedded container. You may want to analyse the dependencies of your project (try mvn dependency:tree).

    If you want to make sure a web server is not started in your spring boot application, you can set the following configuration key

    spring.main.web-application-type=none
    

    Or you can use the SpringApplicationBuilder

    new SpringApplicationBuilder(YourApp.class)
            .web(WebApplicationType.NONE).run(args);