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