实践指南:如何将 SpringBoot 项目无缝部署到 Tomcat 服务器 ...

打印 上一主题 下一主题

主题 539|帖子 539|积分 1617

序言

SpringBoot 是一个用来简化 Spring 应用初始搭建以及开发过程的框架,我们可以通过内置的 Tomcat 容器来轻松地运行我们的应用。但在生产环境中,我们大概必要将应用部署到独立的 Tomcat 服务器上。本文给各人介绍 SpringBoot 项目部署到独立 Tomcat 服务器的利用流程。
一、修改打包方式

起首,必要将 Spring Boot 的打包方式从 jar 修改为 war。打开 pom.xml 文件,找到 标签,将其内容改为 war。
  1. <packaging>war</packaging>
复制代码
二、清除 tomcat 依赖

清除 tomcat 依赖的方式有许多,我们可以采用以下简单的方式:直接变更 tomcat 的依赖范围为 provided
  1. <dependency>
  2.   <groupId>org.springframework.boot</groupId>
  3.   <artifactId>spring-boot-starter-tomcat</artifactId>
  4.   <scope>provided</scope>
  5. </dependency>
复制代码
三、设置 SpringBoot 启动类

  1. // SpringBoot 的启动类
  2. @SpringBootApplication
  3. public class App {
  4.     public static void main(String[] args) {
  5.         SpringApplication.run(App.class, args);
  6.     }
  7. }
  8. // 自定义 ServletInitializer
  9. public class ServletInitializer extends SpringBootServletInitializer {
  10.     @Override
  11.     protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
  12.         return builder.sources(App.class);
  13.     }
  14. }
复制代码

  • Servlet 容器加载机制:在 Java Web 开发中,Servlet 容器负责加载和管理 Servlet。Servlet 容器会在启动时读取 web.xml 文件(或者使用 Servlet 3.0 注解)来获取应用程序的设置信息,并加载相应的 Servlet。对于 SpringBoot 应用程序来说,它也是一个 Servlet,必要被加载到 Servlet 容器中才气运行。
  • SpringBoot 启动类:SpringBoot 应用程序通常有一个主类,此中包罗 main 方法。这个主类使用 SpringBoot 的 @SpringBootApplication 注解标记,它告诉 SpringBoot 应用程序的入口点。在内嵌 Tomcat 的情况下, SpringBoot 会自动检测并启动应用程序,而在外部 Tomcat 中,我们必要告诉 Tomcat 如何加载 SpringBoot 应用程序。
  • SpringBootServletInitializer 作用:SpringBootServletInitializer 是 SpringBoot 提供的一个抽象类,用于支持将 SpringBoot 应用程序部署到外部 Servlet 容器中。通过继续 SpringBootServletInitializer 类并重写其 configure 方法,我们可以告诉外部 Servlet 容器如何初始化 SpringBoot 应用程序,并指定 SpringBoot 应用程序的主类。
  • configure 方法重写:在 configure 方法中,我们必要调用 SpringApplicationBuilder 的 sources 方法并通报 SpringBoot 应用程序的主类,以告诉外部 Servlet 容器从哪里加载 SpringBoot 应用程序。SpringBoot 会在部署到外部 Servlet 容器时自动检测到这个 configure 方法,并使用它来初始化应用程序。
四、构建 war 包

执行 mvn clean package
命令完成打包
  1. mvn clean package
复制代码

五、部署到 Tomcat


推荐阅读


  • Docker Compose:简化多容器应用部署
  • cURL:命令行下的网络工具
  • RabbitMQ(Docker 单机部署)
  • 深入明白 Java 并发:AbstractQueuedSynchronizer 源码分析
  • 深入相识 Arthas:Java 应用程序诊断利器

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

不到断气不罢休

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表