零、学习目标
- 掌握Spring Boot项目Jar包方式打包部署。
- 掌握Spring Boot项目War包方式打包部署。
一、Web项目打包部署概述
传统的Web应用进行打包部署时,通常会打成War包的形式,然后将War包部署到Tomcat等服务器中,而Spring Boot应用使用的是嵌入式Servlet容器,也就是说,Spring Boot应用默认是以Jar包形式进行打包部署的,而如果想要使用传统的War包形式进行打包部署,就需要进行一些配置。接下来,分别讲解Spring Boot应用以Jar包和War包的形式进行打包和部署。
二、Jar包方式打包部署
- 打开上一讲项目 - FileDownloadDemo
(一)添加Maven打包插件
- 其实,利用Spring Initializr创建Spring Boot项目,在pom文件里默认就已经添加了Maven打包插件
(二)使用IDEA进行打包
(三)Jar包目录结构说明
- 利用解压缩软件打开jar包 - filedownloaddemo-0.0.1-SNAPSHOT.jar,进入BOOT-INF目录,里面包含classes和lib两个目录
- lib目录 - 对应着所有添加的依赖文件导入的jar文件
- classes目录 - 对应着项目打包编译后的所有文件
(四)Jar包方式部署
1、在控制台切换到Terminal界面
2、使用java -jar XXX.jar命令部署启动Jar包
D:\IdeaProjects\FileDownloadDemo>java -jar target\filedownloaddemo-0.0.1-SNAPSHOT.jar
3、测试启动效果,访问文件下载页面
- 访问
http://localhost:8080/toFileDownload
三、War包方式打包部署
(一)声明打包方式为War包
(二)声明使用外部的Tomcat服务器
(三)提供Spring Boot启动的Servlet初始化器
- 主程序启动类继承
SpringBootServletInitializer
类并实现configure()
方法,在configure()
方法中,sources(FileDownloadDemoApplication.class,args)
方法的首个参数必须是项目主程序启动类。需要说明的是,为Spring Boot提供启动的Servlet初始化器SpringBootServletInitializer
的典型的做法就是让主程序启动类继承SpringBootServletInitializer
类并实现configure()
方法;除此之外,还可以在项目中单独提供一个继承SpringBootServletInitializer
的子类,并实现configure()
方法。
(四)使用IDEA进行打包
- War包形式的打包方式与Jar包的打包方式完全一样
(五)War包方式部署
1、将打包好的War包拷贝到Tomcat安装目录下的webapps目录中
2、执行Tomcat安装目录下bin目录中的startup.bat命令启动War包项目
3、测试启动效果,访问文件下载页面
- 使用外部Tomcat部署的项目进行访问时,必须加上项目名称(打成war包后的项目全名)
- 访问
http://localhost:8080/filedownloaddemo-0.0.1-SNAPSHOT/toFileDownload