目录:
- 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。这样,在 项目打包部署时,既可以使用外部配置的Tomcat 以 War 包形式部署,
还可以使用内嵌Tomcat以 Jar包形式部署。
③ 提供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 ( 加上了 “项目名称” )就能访问到该项目了。