Spring Boot - Развернуть WAR-файл в Tomcat
В этой статье мы покажем вам, как создать традиционный WAR-файл Spring Boot и развернуть его в контейнере сервлета Tomcat.
В Spring Boot, чтобы создать WAR для развертывания, нам нужно 3 шага:
-
Расширяет
SpringBootServletInitializer
-
Помечен встроенный контейнер сервлета как предоставленный.
-
Обновление упаковки до войны
Протестировано с
-
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
Прочтите это -Spring Boot – Which main class to start
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