zoukankan      html  css  js  c++  java
  • Spring Boot应用的打包和部署

      

      传统的Web应用在发布之前通常会打成WAR包,然后将WAR包部署到Tomcat等容器中使用,而通过前面的学习我们已经知道,Spring Boot应用既能以JAR包的形式部署,又能以WAR包的形式部署。

    JAR包

      打包方式是JAR,在idea中只需要执行Maven的package命令就可以将项目打成一个JAR包
      JAR包复制到系统D盘,并使用压缩软件打开。我们可以在其lib文件夹中发现很多JAR包,实际上这些JAR包就是项目所依赖的JAR包,其中还包括了Tomcat的JAR包
      由于在项目JAR包中已经包含了Tomcat,所以我们不需要另外部署Tomcat就可以在命令行中将项目启动起来。
      在命令提示符窗口中进入JAR包所在目录(D盘),并通过如下命令来执行JAR包:

    java -jar springboot-0.0.1-SNAPSHOT.jar

    WAR包

      虽然通过Spring Boot内嵌的Tomcat可以直接运行所打的JAR包,但是有时候我们也会希望通过外部的Tomcat来管理多个项目。由于JAR包在Tomcat中是无法运行的,所以我们需要将项目打成WAR包的形式。
      要想将项目打成WAR包,并可以在Tomcat中运行,需要执行以下两个步骤。

    1. 修改打包方式,并添加Tomcat依赖

    将项目pom.xml中<packaging>元素内的jar修改为war,并在文件中添加Tomcat的依赖配置。其修改和添加的配置信息如下:

    <packaging>war</packaging>
    ...
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>

      上述配置代码中,spring-boot-starter-tomcat是Spring Boot自带的Tomcat依赖,默认会被打到项目的lib包中。当我们将其依赖范围设置为provided时,将产生一个可执行的WAR包,在包中的lib-provided目录会有provided依赖。这样不仅可以部署到Servlet容器启动项目,还可以通过命令行执行java-jar命令来运行此应用。

    2. 创建SpringBootServletInitializer子类,并覆盖其配置方法

      要产生一个可部署的war包,还需要提供一个SpringBootServletInitializer子类,并覆盖它的configure()方法。通常我们可以采用两种方式:一是把应用的主类(引导类)修改为继承SpringBootServletInitializer的类,并覆盖configure()方法;二是创建一个继承了SpringBootServletInitializer的类,并覆盖configure()方法。以创建SpringBootServletInitializer子类的方式为例,其子类实现代码如文件3-11所示。
      文件3-11 ServletInitializer.java

    package com.xc.springboot;
    
    import javafx.application.Application;
    import org.springframework.boot.builder.SpringApplicationBuilder;
    import org.springframework.boot.web.support.SpringBootServletInitializer;
    
    public class ServletInitializer extends SpringBootServletInitializer {
    
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(Application.class);
        }
    }

      完成这两步后,即可通过package命令将项目打成WAR包,然后将WAR包部署到Tomcat中启动。

  • 相关阅读:
    鬼斧神工:求n维球的体积
    一个双曲函数的积分
    复杂的对数积分(八)
    一个有意思的对数积分的一般形式
    Logarithmic-Trigonometric积分系列(二)
    Logarithmic-Trigonometric积分系列(一)
    Some series and integrals involving the Riemann zeta function binomial coefficients and the harmonic numbers
    Euler Sums系列(六)
    Euler Sums系列(五)
    级数欣赏
  • 原文地址:https://www.cnblogs.com/ooo0/p/11179871.html
Copyright © 2011-2022 走看看