文章目录

  • 7. 项目构建与部署
  • 7.1 Jar部署
  • 7.2 War部署


7. 项目构建与部署

SpringBoot可以内嵌Servlet容器,因此部署极为方便,可直接打包成可执行Jar包部署在Java允许环境的服务器上,也可以打包成War包并部署在外部Tomcat服务器上等。

7.1 Jar部署

SpringBoot打包成Jar包一般使用spring-boot-maven-plugin这个插件,该插件在创建Spring Boot Web项目时自动会在pom.xml文件中生成:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

当配置了该插件后就可以创建一个可执行的Jar文件。这在很大程度上简化了应用的部署,只需安装了JRE就可以允许。不过前提是应用程序的parent为spring-boot-starter-parent。

配置完成后Maven Project中双击执行clean,当clean执行完毕后,再执行install,如下所示:

spring boot jar 部署 spring boot怎么部署_spring boot


spring boot jar 部署 spring boot怎么部署_java_02


执行完毕后,会发现在项目的根目录的target目录下有刚刚打包好的jar包。接着进入target目录下执行如下命令即可启动项目:

java -jar spring_security-0.0.1-SNAPSHOT.jar

或者把这个jar放在任意盘符中,按住shift+鼠标右键进行Power Shell输入命令启动项目。

7.2 War部署

SpringBoot默认打包成Jar包,使用SpringBoot构造Web应用,默认使用内置Tomcat。但考虑到项目需要集群部署或者进行优化,就需要打包成War包部署到外部的Tomcat服务器中。

  1. 修改打包方式
    修改pom.xml文件将默认的Jar方式改为War方式:
<packaging>war</packaging>
  1. 排除内置的Tomcat容器
    在pom.xml文件中移除Tomcat:
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
  1. 添加servlet-api依赖
    在pom.xml文件中添加servlet-api依赖:
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>
  1. 修改启动类
    启动类继承SpringBootServletInitializer并重写configure方法:
package com.shenziyi.spring_security;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class WarInitializer extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){
        //注意这里要指向原先main方法执行的Application启动类
        return builder.sources(SpringSecurityApplication.class);
    }
}
  1. 打包部署
    打包War包的方式和打包Jar包的方式一样都是在Maven Project中双击执行clean,当clean执行完毕后,再执行install。然后把target目录下的War包放到Tomcat的webapps目录下,启动Tomcat,即可自动解压部署。最后在浏览器中就可以访问该打包项目。
    注意:使用外部Tomcat部署访问时,application。properties(或者application.yml)中的配置将失效,请使用外置Tomcat的端口和webapps目录下的项目名进行访问。