Spring Boot | Spring Boot 应用的 “打包” 和 “部署”

Spring Boot 应用的 “打包” 和 “部署” :

作者简介 :一只大皮卡丘,计算机专业学生,正在努力学习、努力敲代码中! 让我们一起继续努力学习!

该文章参考学习教材为:
《Spring Boot企业级开发教程》 黑马程序员 / 编著
文章以课本知识点 + 代码为主线,结合自己看书学习过程中的理解和感悟 ,最终成就了该文章

文章用于本人学习使用 , 同时希望能帮助大家。
欢迎大家点赞👍 收藏⭐ 关注💖哦!!!

(侵权可联系我,进行删除,如果雷同,纯属巧合)


  • 传统的Web应用 进行 打包部署时,通常会打成War包形式,然后将 War包部署Tomcat等服务器中,而Spring Boot应用 使用的是嵌入式Servlet容器也就是说Spring Boot应用默认是 以Jar包形式 进行 打包部署的,而如果想要使用传统War包形式进行打包部署,就需要进行一些配置

    ( SpringBoot默认打 的是Jar包,而不是war包 )

一、Jar包方式打包部署 ( SpringBoot默认以 “Jar包” 形式进行 “打包部署” ) :

  • 由于 Spring Boot应用中 已经嵌入Tomcat服务器,所以将Spring Boot应用以默认 Jar包形式进行打包部署非常简单方便

1.1 “Jar包” 方式 “打包” :

① 添加Maven “打包插件”
  • 添加 Maven打包插件spring-boot-maven-plugin

    <!--  Maven打包插件,辅助对项目进行“打包”  -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    

    在对 Spring Boot项目进行打包(包括 Jar包War包)前,需要在项目 pom.xml文件中加入Maven打包插件

② 使用IDEA开发工具进行 “打包”
  • IDEA开发工具除了提供Java开发的便利之外,还提供了非常好的 项目打包支持具体操作下图所示

    在这里插入图片描述

    上图中,使用IDEA开发工具Spring Boot项目进行 打包时,单击右侧边框的【Maven】视图,打开对应的项目操作窗口;然后,在“Maven’”视图对应的操作窗口中,选择项目目录下Lifecycle目录中的【package】选项,直接双击就可以进行 项目打包了。
    根据上述操作说明双击【package】选项执行打包后,控制台就会显示打包运行过程以及最终的打包结果,效果下图所示
    在这里插入图片描述

    控制台界面中显示的信息 :

    Building jar: S:\2024年项目\SpringBoot企业级开发\chapter_12\target\chapter_12-0.0.1-SNAPSHOT.jar
    Jar包具体存放路径以及名称


    与此同时,我们还可以打开IDEA开发工具下项目的 target目录中查看打成的Jar包,效果如下图所示 :
    在这里插入图片描述

1.2 “Jar包” 方式 “部署”

  • 打开 IDEA开发工具中的 Terminal终端界面 ( 该界面默认打开项目所在位置 ) ,用 Jar包方式部署命令

    java -jar target\jar包名名称.jar
    //注意点: Terminal终端界面要在当前的"项目路径"下,然后再运行上述命令进行Jar包方式“部署”
    

    在这里插入图片描述


    在这里插入图片描述

    执行上述指令后Terminal终端界面就会 启动 SpringBoot项目。 一定要保证执行的xxx.jar包可以找到并且路径中没有特殊字符 ( 如: 空格 )。

二、“War包” 方式打包部署 :

  • 虽然通过 Spring Boot 内嵌Tomcat 可以直接项目打成Jar包进行部署,但有时候需要 通过 外部的可配置Tomcat进行项目管理
    这就需要将 项目 打成 War包

2.1 “War包” 方式 “打包” :

① 声明打包方式为 “War包” :
  • 在**pom.xml文件中添加 以下命令** 来将 Spring Boot项目默认Jar包打包方式修改为War包 形式 :

    <!--  1.将项目打包方式声明为: War  -->
    <packaging>war</packaging>
    

    在这里插入图片描述

② 声明使用 “外部” Tomcat服务器
  • Spring Boot项目默认提供了内嵌Tomcat服务器,为了将项目以War形式进行 打包部署,此时就需要声明使用外部 Tomcat 服务器

  • pom.xml文件中,配置使用外部提供的Tomcat

    <!-- 2.声明使用外部提供的Tomcat  -->
    <!-- spring-boot-starter-tomcat : 指的是SpringBoot内嵌的"服务器" ,
    <scope>provided</scope> : 表示将“服务器”声明为 provided ,这样SpringBoot即可使用内嵌Tomcat以Jar包形式部署,也可
    使用外部配置的Tomcat以War包形式部署
    -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    

    上述代码中,spring-boot-starter-tomcat 指定的是 Spring Boot 内嵌Tomcat服务器,使用 <Scope> provided </scope>该服务器 声明为外部已提供provided。这样,在 项目打包部署时,既可以使用外部配置TomcatWar 包形式部署
    还可以使用内嵌TomcatJar包形式部署

③ 提供Spring Boot “启动” 的 “Servlet初始化器”
  • 主程序启动类 继承 SpringBootServletInitializer,并 重写 configure( )方法 :

    在这里插入图片描述

    上述代码中主程序启动类 继承 SpringBootServletlnitializer类并实现 configure( )方法,在 configure( )方法中,sources( )方法第一个参数必须是项目主程序启动类

    执行完 上述3步操作 后,就可以将项目War 包形式进行 打包了。War 包形式的 打包方式Jar包打包形式一样的,透视通过IDEA打包工具进行打包
    在这里插入图片描述

2.2 “War包” 方式 “部署” ( 注意点 : war包部署后,访问项目时,必须加上 “项目名称” , 不然会访问不到 )

  • 将打包好的 War包 复制Tomcat安装目录下的webapps目录中,执行Tomcat安装目录bin 目录中的 startup.bat命令 启动 War 包项目项目启动后,执行效果如图所示

    在这里插入图片描述

    此时可对项目中的内容进行访问,如 :http://localhost:8080/chapter_12-0.0.1-SNAPSHOT/toUpload
    ( 访问该项目时,必须加上 “项目名称” : 打成war包后的项目全名 )


    注意点
    war包部署后访问项目时,必须加上 “项目名称” , 不然会访问不到。如平常 SpringBoot默认Jar包部署时,访问 http://localhost:8080/toUpload 就能访问到项目,但因为此处的使用 外部的Tomcat进行war包部署url上就必须加上 “项目名称,所以此处用 http://localhost:8080/chapter_12-0.0.1-SNAPSHOT/toUpload ( 加上了 “项目名称” )就能访问到该项目了。

相关推荐

  1. vue项目部署镜像打包

    2024-04-20 14:14:01       21 阅读
  2. vue2vue3 部署打包到线上子目录区别

    2024-04-20 14:14:01       36 阅读
  3. K8S学习指南(71)-Operator打包部署

    2024-04-20 14:14:01       33 阅读
  4. 如何进行Web应用版本控制部署

    2024-04-20 14:14:01       23 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-20 14:14:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-20 14:14:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-20 14:14:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-20 14:14:01       18 阅读

热门阅读

  1. 在redhat7/8平台上部署ELK7.17.18的技术方案

    2024-04-20 14:14:01       49 阅读
  2. 【Clickhouse】如何在ClickHouse中删除集群表数据

    2024-04-20 14:14:01       43 阅读
  3. [Android]Jetpack Compose设置颜色

    2024-04-20 14:14:01       20 阅读
  4. 微服务中Dubbo通俗易懂讲解及代码实现

    2024-04-20 14:14:01       12 阅读
  5. 介绍TCP窗口

    2024-04-20 14:14:01       12 阅读
  6. 简单了解Vue3

    2024-04-20 14:14:01       12 阅读
  7. 注册中心~

    2024-04-20 14:14:01       14 阅读