Развертывание приложения Spring Boot на Tomcat Server

1- Цель статьи

В данной статье я покажу вам как применить приложение  Spring Boot на  Tomcat Server. Одна из характеристик  Tomcat это легкость, объем Tomcat примерно 10MB, и один  Java Web Server с открытым исходным кодом.
Удостоверьтесь что вы успешно установили  Tomcat, если нет вы можете посмотреть как установить Tomcat в статье ниже:
На самом деле . приложение  Spring Boot может быть упаковано в один исполняемый файл  JAR (Executable JAR file). С данным файлом вы можете запустить приложение напрямую без необходимости применения никакого  Web Server. Executable JAR file не может быть совместимым со всеми  Web Server, поэтому если вы хотите применить определенный Web Server, вам нужно упаковать приложение  Spring Boot в файл  WAR.

2- Edit code

Здесь у меня есть проект  Spring Boot, разработаный с помощью  Eclipse IDE. При создании проекта  Spring Boot у вас есть 2 выбора для упаковки данного проекта в WAR или  JAR.
Когда вы создаете проект  Spring Boot с опцией  "Packaging = War", Eclipse создаст для вас 2 класса  "AbcApplication & ServletInitializer". Файлы  WAR подходят для применения (deploy) на  Web Server.
При этом, если вы создаете проект  Spring Boot с опцией  "Packaging = Jar", будет создан только один класс  AbcApplication. Приложение  Spring Boot при упаковке в файл  JAR, может выполнить (Executabe) самостоятельно без необходимости применения какого-либо  Web Server. Но файл  JAR не подходит для развертывания на Web Server.

WAR File.

Если у вас уже есть готовый проект  Spring Boot, вам нужно изменить метод упаковки (Packaging) в  WAR:
На  Eclipse откройте файл  pom.xml, и измените метод упаковки (packaging) в war.
Если ваш проект не имеет класс  ServletInitializer, создайте его.
ServletInitializer.java
package org.o7planning.example;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(SpringBootTomcatApplication.class);
    }

}
Добавьте следующий конфигурационный сниппет в  pom.xml:
** pom.xml **
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
Если имеется более чем 1 класс  Application в вашем проекте, скажите  Spring Boot какой класс будет использоваться для вашего приложения.
** pom.xml **
<properties>
        <start-class>org.o7planning.example.OtherSpringBootWebApplication</start-class>
</properties>

3- Install Spring Boot

Следующий шаг это вам нужно использовать Maven чтобы создать файл  WAR. Нужно удостовериться ваш  Eclipse использует  JDK вместо  JRE, если нет то произойдет ошибка в данном процессе.
Нажмите на правую кнопку мыши в Project и выберите:
  • Run As/Maven Install

Теперь у вас будет файл WAR расположенный в папке  target проекта, вы можете использовать данный файл для развертывания на  Tomcat Server.
Смотрите так же: