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:
-
Erweitert
SpringBootServletInitializer -
Markiert den eingebetteten Servlet-Container als bereitgestellt.
-
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
Lesen Sie dies -Spring Boot – Which main class to start
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