本文概述
- 创建一个Spring Boot WAR
- 将WAR文件部署到Tomcat
它包括三个步骤:
- 设置一个Spring Boot应用程序
- 创建一个Spring Boot WAR
- 将WAR部署到Tomcat
让我们创建一个要在Tomcat上部署的Maven示例
设置一个Spring Boot应用程序
步骤1:打开Spring Initializr http://start.spring.io。
步骤2:提供群组名称。我们提供了com.srcmini。
第3步:提供工件ID。我们提供了spring-boot-war-deployment-example的示例。
步骤4:添加Spring Web依赖项。
<
dependency>
<
groupId>
org.springframework.boot<
/groupId>
<
artifactId>
spring-boot-starter-web<
/artifactId>
<
/dependency>
步骤5:点击Generate(生成)按钮。它包装了与项目有关的所有规范, 并在我们的本地系统中下载jar文件。
文章图片
步骤6:提取jar文件。
步骤7:使用以下步骤导入项目文件夹:
文件-> 导入-> 现有Maven项目-> 下一步-> 浏览-> 选择项目文件夹-> 完成
导入项目后, 我们可以在IDE的Package Explorer部分中看到以下目录结构。
文章图片
步骤8:在包com.srcmini中创建一个Controller类。我们创建了一个名为DemoRestController的类。
在控制器类内部, 我们定义了一个返回字符串的方法hello()。
DemoRestController.java
package com.srcmini;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestControllerpublic class DemoRestController {@GetMapping("/hello")public String hello() {return "Hello User, have a nice day.";
}}
步骤9:以Java应用程序的形式运行SpringBootWarDeploymentExampleApplication.java文件。
【Spring Boot使用Tomcat进行项目部署(图文)】步骤10:打开浏览器并调用URL http:// localhost:8080 / hello。
文章图片
注意:在进行下一步之前, 请确保应用程序正在正确运行。 创建一个Spring Boot WAR 它利用了Spring Framework的Servlet 3.0支持, 并允许我们在Servlet容器启动时配置应用程序。创建用于部署的WAR分为三个步骤:
- 在主类中扩展SpringBootServletInitializer类。
- 将嵌入式servlet容器标记为已提供。
- 将包装JAR更新为
步骤11:打开SpringBootWarDeploymentExampleApplication.java文件, 并初始化Tomcat所需的Servlet Context。为了达到同样的目的, 扩展了SpringBootServletInitializer接口。
public class SpringBootWarDeploymentExampleApplication extends SpringBootServletInitializer{}
步骤12:覆盖Configure方法。
@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(SpringBootWarDeploymentExampleApplication.class);
}
SpringBootWarDeploymentExampleApplication.java
package com.srcmini;
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;
@SpringBootApplicationpublic class SpringBootWarDeploymentExampleApplication extends SpringBootServletInitializer{@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(SpringBootWarDeploymentExampleApplication.class);
}public static void main(String[] args) {SpringApplication.run(SpringBootWarDeploymentExampleApplication.class, args);
}}
步骤13:打开pom.xml文件, 并将servlet容器(Tomcat)标记为已提供。
<
dependency>
<
groupId>
org.springframework.boot<
/groupId>
<
artifactId>
spring-boot-starter-tomcat<
/artifactId>
<
scope>
provided<
/scope>
<
/dependency>
步骤14:我们需要部署WAR文件, 因此在pom.xml文件中将包类型更改为WAR。
<
packaging>
war<
/packaging>
步骤15:使用< finalName> 标记修改最终的WAR文件名, 以避免包含版本号。我们创建了一个名为Web-services的WAR文件。
<
finalName>
web-services<
/finalName>
pom.xml
<
?xml version="1.0" encoding="UTF-8"?>
<
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.srcmini<
/groupId>
<
artifactId>
spring-boot-war-deployment-example<
/artifactId>
<
version>
0.0.1-SNAPSHOT<
/version>
<
packaging>
war<
/packaging>
<
name>
spring-boot-war-deployment-example<
/name>
<
description>
Demo project for Spring Boot<
/description>
<
parent>
<
groupId>
org.springframework.boot<
/groupId>
<
artifactId>
spring-boot-starter-parent<
/artifactId>
<
version>
2.2.2.RELEASE<
/version>
<
relativePath/>
<
!-- lookup parent from repository -->
<
/parent>
<
properties>
<
project.build.sourceEncoding>
UTF-8<
/project.build.sourceEncoding>
<
project.reporting.outputEncoding>
UTF-8<
/project.reporting.outputEncoding>
<
java.version>
1.8<
/java.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-test<
/artifactId>
<
scope>
test<
/scope>
<
/dependency>
<
/dependencies>
<
build>
<
finalName>
web-services<
/finalName>
<
plugins>
<
plugin>
<
groupId>
org.springframework.boot<
/groupId>
<
artifactId>
spring-boot-maven-plugin<
/artifactId>
<
/plugin>
<
/plugins>
<
/build>
<
/project>
为了构建可部署Tomcat的WAR应用程序, 我们执行maven clean软件包。之后, 我们的WAR文件在/target/abc.war中生成(假定abc为工件ID)。我们应该考虑到这种新设置使我们的Spring Boot Application成为非独立的应用程序。
步骤16:使用以下步骤创建WAR文件:
右键单击项目-> Run As-> 5 Maven Build
文章图片
屏幕上出现” 编辑配置” 对话框。
步骤17:在目标标签中编写全新安装, 然后检查跳过测试。分别单击” 应用” 和” 运行” 按钮。
文章图片
成功创建WAR文件后, 它将在控制台中显示WAR文件路径和消息BUILD SUCCESS, 如下图所示。
文章图片
步骤18:复制路径并访问应用程序的目标文件夹。我们在目标文件夹中找到了与pom.xml文件中指定的名称相同的WAR文件。在我们的情况下, 路径为:
C:\Users\Anubhav\Documents\workspace-sts-3.9.9.RELEASE\spring-boot-war-deployment-example\target
文章图片
将WAR文件部署到Tomcat 要部署WAR文件, 请按照以下步骤操作:
步骤19:下载并安装Apache Tomcat服务器(如果未安装)。
步骤20:复制WAR文件(web-services.war)并将其粘贴到Tomcat的webapps文件夹中。在我们的例子中, webapps文件夹的位置为:
C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps
文章图片
步骤21:现在打开命令提示符并键入以下命令:
C:\Cd Program Files\Apache Software Foundation\Tomcat8.5\binC:\Cd Program Files\Apache Software Foundation\Tomcat8.5\bin>
startup
文章图片
启动命令将启动Tomcat服务器并部署WAR文件, 如下所示。
文章图片
下图显示WAR已成功部署。
文章图片
步骤23:打开浏览器并调用URL http:// localhost:8080 / web-services / hello。它返回消息Hello User, 祝你有美好的一天。
下载WAR部署示例项目
推荐阅读
- Spring Boot Starter Web用法详解
- Spring Boot Starter父级用法介绍
- Spring Boot多模块项目实例详细图解
- android 使用SQLite存储数据
- 关于常用的web.xmlapplicationContext.xml与springMVC-servlet.xml
- Android五种数据存储方式
- 猫眼电影App抓包获取评论数据接口
- Xamarin.Android 无法检索到 Resource 问题
- HDU 6333:Harvest of Apples