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

devtools/2024/11/15 8:28:00/

目录:

  • Spring Boot 应用的 “打包” 和 “部署” :
    • 一、Jar包方式打包部署 ( SpringBoot默认以 "Jar包" 形式进行 “打包部署” ) :
      • 1.1 "Jar包" 方式 “打包” :
        • ① 添加Maven “打包插件”
        • ② 使用IDEA开发工具进行 "打包"
      • 1.2 "Jar包" 方式 “部署”
    • 二、"War包" 方式打包部署 :
      • 2.1 "War包" 方式 “打包” :
        • ① 声明打包方式为 "War包" :
        • ② 声明使用 “外部” Tomcat服务器
        • ③ 提供Spring Boot "启动" 的 "Servlet初始化器"
      • 2.2 "War包" 方式 “部署” ( 注意点 : war包部署后,访问项目时,必须加上 “项目名称” , 不然会访问不到 )

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

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

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

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

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


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

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

SpringBoot_Jar_____31">一、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">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 ( 加上了 “项目名称” )就能访问到该项目了。


http://www.ppmy.cn/devtools/4019.html

相关文章

设计模式-适配器模式

现实生活中的适配器例子 泰国插座用的是两孔的(欧标)&#xff0c;可以买个多功能转换插头(适配器)&#xff0c;这样就可以使用了。 基本介绍 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示&#xff0c;主的目的是兼容性&#xff0c;让原本因接…

ES6 常用语法

目录 1. 声明变量: let 和 const&#xff08;无变量提升&#xff0c;块级作用域&#xff0c;不可重复声明&#xff09; 2. 箭头函数 3. 模板字符串&#xff0c;${} 4. 解构赋值 5. 默认参数 6. 展开运算符 7. 类和继承 8. Promise 对象 1. 声明变量: let 和 const&…

GC垃圾回收

垃圾回收 1、什么是 垃圾回收机制&#xff1a; 理解Java的垃圾回收机制&#xff0c;就要从&#xff1a;“什么时候”&#xff0c;“对什么东西”&#xff0c;“做了什么”三个方面来具体分析。 ​ 第一&#xff1a;“什么时候”即就是GC触发的条件。 ​ GC触发的条件有两种…

Pytorch手撸Attention

Pytorch手撸Attention 注释写的很详细了&#xff0c;对照着公式比较下更好理解&#xff0c;可以参考一下知乎的文章 注意力机制 import torch import torch.nn as nn import torch.nn.functional as Fclass SelfAttention(nn.Module):def __init__(self, embed_size):super(S…

HTML5媒体元素

video元素 视频元素&#xff0c;可以用来插入电影片段或其他视频流。 支持的视频格式是MP4&#xff0c;WebM&#xff0c;Ogg source元素 定义媒体的资源 src属性 规定媒体资源的URL type属性 规定媒体资源的MIME类型 <video controls><source src"../v…

Ubuntu24.04之软件源修改

注意事项 Ubuntu24.04的软件源从/etc/apt/sources.list改为/etc/apt/sources.list.d/ubuntu.sources 修改步骤 #备份软件源 sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak #更换软件源&#xff08;更换为中科大源&#xff0…

Linux网络基础(一)

网络发展 对于我们国家来讲&#xff0c;网络的发展&#xff0c;不仅仅是互联网公司在发展&#xff0c;提供重要推动力的还有三大运商 随之而来的是新设备的诞生。比如集线器&#xff0c;网线&#xff0c;光纤&#xff0c;调制解调器&#xff0c;路由器&#xff0c;防火墙&am…

快速找到nginx用的是哪个配置文件

背景 在工作中会碰到一台服务器安装了多个nginx的服务的情况。 Nginx的主配置文件有的在/etc/nginx/nginx.conf而有的在/usr/local/nginx/conf/nginx.conf&#xff0c;还有很多情况配置文件在很多自定义的位置。 问题点 1.当前nginx服务的主配置文件具体是哪个呢&#xff1…