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