Spring Boot - Stellen Sie die WAR-Datei auf Tomcat bereit

Spring Boot - Stellen Sie die WAR-Datei für Tomcat bereit

In diesem Artikel zeigen wir Ihnen, wie Sie eine herkömmliche WAR-Datei für Spring Boot erstellen und in einem Tomcat-Servlet-Container bereitstellen.

Um in Spring Boot eine WAR für die Bereitstellung zu erstellen, sind drei Schritte erforderlich:

  1. ErweitertSpringBootServletInitializer

  2. Markiert den eingebetteten Servlet-Container als bereitgestellt.

  3. Aktualisieren Sie die Verpackung auf Krieg

Getestet mit

  • Spring Boot 2.1.2.RELEASE

  • Tomcat 8 und 9

  • Maven 3

Note
In Spring Boot ist die neue endgültige ausführbare JAR-Datei mit eingebetteter Serverlösung möglicherweise nicht für alle Produktionsumgebungen geeignet, insbesondere für das Bereitstellungsteam (ein Team mit guten Kenntnissen in Bezug auf Serveroptimierung und -überwachung) Mangel an Entwicklungserfahrung), sie wollen die volle Kontrolle über den Server und sie berühren keinen Code, daher benötigen wir eine traditionelle WAR-Datei.

1. ErweitertSpringBootServletInitializer

Aktualisieren Sie die Klasse@SpringBootApplication, umSpringBootServletInitializer zu erweitern, und überschreiben Sie die Methodeconfigure.

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);
    }

}*/

Vergewissern Sie sich bei mehreren Hauptklassen, dass Sie Spring Boot mitteilen, welche Hauptklasse gestartet werden soll:

pom.xml

  
      
      com.example.SpringBootWebApplication
  

2. Markiert den eingebetteten Servlet-Container als bereitgestellt

pom.xml



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

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

3. Aktualisieren Sie die Verpackung auf Krieg

pom.xml

  war

Fertig, erstellen Sie das Projekt und kopieren Sie die WAR-Datei für die Bereitstellung.

Quellcode herunterladen

$ 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