0
点赞
收藏
分享

微信扫一扫

【SpringBoot】SpringBoot——项目的构建和部署

最不爱吃鱼 2022-01-31 阅读 110

文章目录


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,如下所示:
在这里插入图片描述
在这里插入图片描述
执行完毕后,会发现在项目的根目录的target目录下有刚刚打包好的jar包。接着进入target目录下执行如下命令即可启动项目:

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

7.2 War部署

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

  1. 修改打包方式

    修改pom.xml文件将默认的Jar方式改为War方式:

    <packaging>war</packaging>
    
  2. 排除内置的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>
    
  3. 添加servlet-api依赖

    在pom.xml文件中添加servlet-api依赖:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>
    
  4. 修改启动类

    启动类继承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);
        }
    }
    
  5. 打包部署

    打包War包的方式和打包Jar包的方式一样都是在Maven Project中双击执行clean,当clean执行完毕后,再执行install。然后把target目录下的War包放到Tomcat的webapps目录下,启动Tomcat,即可自动解压部署。最后在浏览器中就可以访问该打包项目。

    注意:使用外部Tomcat部署访问时,application。properties(或者application.yml)中的配置将失效,请使用外置Tomcat的端口和webapps目录下的项目名进行访问。

举报

相关推荐

0 条评论