Spring Boot - Развернуть WAR-файл в Tomcat

Spring Boot - Развернуть WAR-файл в Tomcat

В этой статье мы покажем вам, как создать традиционный WAR-файл Spring Boot и развернуть его в контейнере сервлета Tomcat.

В Spring Boot, чтобы создать WAR для развертывания, нам нужно 3 шага:

  1. РасширяетSpringBootServletInitializer

  2. Помечен встроенный контейнер сервлета как предоставленный.

  3. Обновление упаковки до войны

Протестировано с

  • Spring Boot 2.1.2.RELEASE

  • Tomcat 8 и 9

  • Maven 3

Note
В Spring Boot новый финальный исполняемый файл JAR со встроенным серверным решением может не подходить для всех производственных сред, особенно для группы развертывания (команда с хорошими знаниями в области оптимизации серверов и навыков мониторинга, но отсутствие опыта разработки), им нужен полный контроль над сервером, и они не трогают код, поэтому нам нужен традиционный файл WAR.

1. РасширяетSpringBootServletInitializer

Обновите класс@SpringBootApplication, чтобы расширитьSpringBootServletInitializer, и переопределите методconfigure.

1.1 Classic Spring Boot JAR deployment.

StartWebApplication.java

import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class StartWebApplication {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(StartWebApplication.class, args);
    }

}

1.2 For WAR deployment.

StartWebApplication.java

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class StartWebApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(StartWebApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(StartWebApplication.class);
    }
}


/*@SpringBootApplication
public class StartWebApplication {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(StartWebApplication.class, args);
    }

}*/

Для нескольких основных классов обязательно укажите Spring Boot, какой основной класс запустить:

pom.xml

  
      
      com.example.SpringBootWebApplication
  

2. Помечен встроенный контейнер сервлета как предоставленный

pom.xml



    
        org.springframework.boot
        spring-boot-starter-thymeleaf
    

    
    
        org.springframework.boot
        spring-boot-starter-tomcat
        provided
    

3. Обновление упаковки до войны

pom.xml

  war

Готово, соберите проект и скопируйте файл WAR для развертывания.

Скачать исходный код

$ git clone https://github.com/example/spring-boot.git
$ cd web-thymeleaf-war
$ mvn package
$ copy web-thymeleaf-war/target/example.war $TOMCAT/webapps/
$ start Tomcat
$ localhost:8080/example