在现代软件开发中,Spring Boot作为一种流行的开发框架,允许开发者快速构建独立的、生产级的应用程序。在实际的项目部署中,有时需要将Spring Boot应用从JAR包打包成WAR包,以便能在外置容器如东方通TongWeb中部署。本文将详细介绍如何将Spring Boot项目转换为WAR包并在TongWeb中部署。
一、准备工作
- 环境准备:确保已安装好Java JDK、Maven以及东方通TongWeb。
- 项目结构:假设我们已有一个Spring Boot项目,结构如下:
my-spring-boot-app
├── src
│ ├── main
│ │ ├── java
│ │ └── resources
├── pom.xml
二、修改pom.xml
在pom.xml
中,我们需要做以下几步修改,以支持WAR包的构建和外置容器的需求:
- 将
packaging
从jar
改为war
。 - 添加
spring-boot-starter-tomcat
的依赖,并设置为provided
,因为我们将由TongWeb提供Servlet容器。
示例pom.xml
修改如下:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-spring-boot-app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<java.version>17</java.version>
<spring-boot.version>2.5.4</spring-boot.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- 其他依赖 -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
三、创建SpringBootServletInitializer
子类
创建一个继承SpringBootServletInitializer
的主类,以便在外部容器中启动Spring Boot。
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class MySpringBootApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(MySpringBootApplication.class, args);
}
}
四、打包项目
打开你的命令行工具,导航到项目根目录,使用Maven命令构建WAR包:
mvn clean package
打包完成后,会在target
目录下生成my-spring-boot-app-0.0.1-SNAPSHOT.war
文件。
五、部署到TongWeb中
- 登录TongWeb管理后台,进入“应用管理”页面。
- 上传WAR包:点击“部署应用”,选择刚才生成的WAR包。
- 配置相关参数(如JDK版本、上下文路径等),完成后点击“确认”。
- 启动应用,检查应用是否正常运行。
六、总结
通过上述步骤,我们成功地将Spring Boot项目从JAR包转换为WAR包,并在东方通TongWeb中部署。使用外置容器不仅可以实现更好的资源管理,还能方便与其他应用的集成。在实际开发中,了解如何打包和部署应用是非常重要的,这将帮助我们更高效地进行项目管理和维护。