个性化阅读
专注于IT技术分析

Spring Boot使用Tomcat进行项目部署(图文)

本文概述

在本节中, 我们将学习如何在Tomcat服务器上部署Spring Boot应用程序。

它包括三个步骤:

  • 设置一个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文件。

使用Tomcat的Spring Boot项目部署

步骤6:提取jar文件。

步骤7:使用以下步骤导入项目文件夹:

文件->导入->现有Maven项目->下一步->浏览->选择项目文件夹->完成

导入项目后, 我们可以在IDE的Package Explorer部分中看到以下目录结构。

使用Tomcat的Spring Boot项目部署

步骤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;
@RestController
public class DemoRestController 
{
@GetMapping("/hello")
public String hello() 
{
return "Hello User, have a nice day.";
}
}

步骤9:以Java应用程序的形式运行SpringBootWarDeploymentExampleApplication.java文件。

步骤10:打开浏览器并调用URL http:// localhost:8080 / hello。

使用Tomcat的Spring Boot项目部署

注意:在进行下一步之前, 请确保应用程序正在正确运行。

创建一个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方法。

@Override
protected 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;
@SpringBootApplication
public class SpringBootWarDeploymentExampleApplication extends SpringBootServletInitializer
{
@Override
protected 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

使用Tomcat的Spring Boot项目部署

屏幕上出现”编辑配置”对话框。

步骤17:在目标标签中编写全新安装, 然后检查跳过测试。分别单击”应用”和”运行”按钮。

使用Tomcat的Spring Boot项目部署

成功创建WAR文件后, 它将在控制台中显示WAR文件路径和消息BUILD SUCCESS, 如下图所示。

使用Tomcat的Spring Boot项目部署

步骤18:复制路径并访问应用程序的目标文件夹。我们在目标文件夹中找到了与pom.xml文件中指定的名称相同的WAR文件。在我们的情况下, 路径为:

C:\Users\Anubhav\Documents\workspace-sts-3.9.9.RELEASE\spring-boot-war-deployment-example\target
使用Tomcat的Spring Boot项目部署

将WAR文件部署到Tomcat

要部署WAR文件, 请按照以下步骤操作:

步骤19:下载并安装Apache Tomcat服务器(如果未安装)。

步骤20:复制WAR文件(web-services.war)并将其粘贴到Tomcat的webapps文件夹中。在我们的例子中, webapps文件夹的位置为:

C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps
使用Tomcat的Spring Boot项目部署

步骤21:现在打开命令提示符并键入以下命令:

C:\Cd Program Files\Apache Software Foundation\Tomcat  8.5\bin
C:\Cd Program Files\Apache Software Foundation\Tomcat  8.5\bin>startup
使用Tomcat的Spring Boot项目部署

启动命令将启动Tomcat服务器并部署WAR文件, 如下所示。

使用Tomcat的Spring Boot项目部署

下图显示WAR已成功部署。

使用Tomcat的Spring Boot项目部署

步骤23:打开浏览器并调用URL http:// localhost:8080 / web-services / hello。它返回消息Hello User, 祝你有美好的一天。

下载WAR部署示例项目


赞(0) 打赏
未经允许不得转载:srcmini » Spring Boot使用Tomcat进行项目部署(图文)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏