第八章 Spring Boot 打包
Spring Boot 可以打包为 war 或 jar 文件。 以两种方式发布应用。
8.1 Spring Boot 打包为 war
使用 Spring Boot 的 maven 插件将 Springboot 程序打成 war 包,单独部署在 tomcat 中运行(上线部署 常用)。 1.创建了一个jsp应用 2.修改pom.xml 在 pom.xml 文件中配置内嵌 Tomcat 对 jsp 的解析包: 指定 webapp 是 web 应用目录: 指定jsp编译目录: 启动主类,在浏览器访问地址 index: 指定打包后的文件名称: 发布war到tomcat: 主启动类继承 SpringBootServletInitializer : 继承 SpringBootServletInitializer 可以使用外部 tomcat。 SpringBootServletInitializer 就是原有的 web.xml 文件的替代。 使用了嵌入式 Servlet,默认是不支持 jsp。
public class JspApplication extends SpringBootServletInitializer{
}
maven package 打包: 默认是jar,指定项目 package 是 是 war: maven package 打包: 部署war: 把war放到tomcat等服务器的发布目录中。 tomcat为例, myboot.war放到tomcat/webapps目录。
8.2 Spring Boot 打包为 jar
1.创建了一个包含了jsp的项目 2.修改pom.xml 3.创建 webpp 目录,并指定它是 web 应用根目录 创建 jsp 文件:
4.创建 HelloController 指定 jsp 文件编译后目录: 5.application.properties
6.启动 Application ,在浏览器访问应用 启动浏览器,访问 hello: 7. 指定打包后的文件名称:
8.指定springboot-maven-plugin版本
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.2.RELEASE</version>
</plugin>
</plugins>
执行 maven package: target 目录有 jar 文件:mybootjar.jar。
8.3 Spring Boot 部署和运行方式总结
? 在 IDEA 中直接运行 Spring Boot 程序的 main 方法(开发阶段) ? 用 maven 将 Spring Boot 安装为一个 jar 包,使用 Java 命令运行 java -jar springboot-xxx.jar 可以将该命令封装到一个 Linux 的一个 shell 脚本中(上线部署) ? 写一个 shell 脚本: #!/bin/sh java -jar xxx.jar ? 赋权限 chmod 777 run.sh ? 启动 shell 脚本: ./run.sh
8.4 war和jar的区别
war:需要服务器,占用资源,占用端口号,服务器资源占用比较多,充分利用服务器的能力。 jar:有内嵌的tomcat,可以独立运行,简单方便,不需要过多的配置,某些功能上比不上独立的服务器
|