• Spring Boot 学习系列(03)—jar or war,做出你的选择


    此文已由作者易国强授权网易云社区发布。

    欢迎访问网易云社区,了解更多网易技术产品运营经验。


    两种打包方式

    • 采用Spring Boot框架来构建项目,我们对项目的打包有两种方式可供选择,一种仍保持原有的方式不变,package一个war包放置到外置的应用容器中;另一种则是直接打包成一个jar包,这个jar包里面包含了内置的应用容器,可以通过Java命令直接启动运行。

    jar包方式

    • 对于jar包的方式,前面文章的示例中其实我们就是采用的此种方式,使用方式不再赘述。

    war包方式

    • 如果采用war包的方式,其实也很简单,我们仅仅需要变更下配置即可,具体操作如下所示:

      1. 将pom.xml文件中打包方式变更成war

         <groupId>com.example.future</groupId>
         <artifactId>bingo</artifactId>
         <version>0.0.1-SNAPSHOT</version>
         <packaging>war</packaging>
      2. 变更内置容器(默认tomcat)的作用范围为provided,这样在打包时就不会将内嵌的容器打入war包中。在依赖中加入如下内容:

         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-tomcat</artifactId>
             <scope>provided</scope>
         </dependency>
      3. 自定义一个servlet初始化类,继承SpringBootServletInitializer类,如下所示:

             package com.example.future;     import org.springframework.boot.builder.SpringApplicationBuilder;     import org.springframework.boot.web.support.SpringBootServletInitializer;     /**
              * @author future
              */
             public class ServletInitializer extends SpringBootServletInitializer {         @Override
                 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {             return application.sources(BingoApplication.class);
                 }
             }
      4. 通过以上步骤即可完成war包方式的改写。我们再执行package命令时,在target目录下生成的即为项目war包了。




    打包方式的选择


    • 具体的打包方式可以根据我们项目的实际需求以及运维现状来决定。显而易见的,如果采用jar包的方式进行部署,那么对于容器(如tomcat)的管理,开发人员可以介入其中自行维护,部署也相对简单些。当然,若需要运维在外部配置指定也是可以的,在使用java命令启动打好的jar包时指定运行参数即可。


    • 不足之处,欢迎指正,谢谢~


    免费体验云安全(易盾)内容安全、验证码等服务

    更多网易技术、产品、运营经验分享请点击


    相关文章:
    【推荐】 视觉设计师的进化
    【推荐】 canvas 动画库 CreateJs 之 EaselJS(上篇)

  • 相关阅读:
    同一内网不能网段ping 不通
    mysql 5.6.33 重置密码后报错
    设置tomcat内存设定
    python 取两数的百分比
    cache buffers
    登录到mysql查看binlog日志
    mysqlbinlog 查看日志时发生报错
    find 查找文件 -exec 然后压缩 查看tar包的内容
    zip 压缩文件 unzip查看zip压缩包内的内容
    react-native 完整实现登录功能
  • 原文地址:https://www.cnblogs.com/zyfd/p/9881236.html
Copyright © 2020-2023  润新知