zoukankan      html  css  js  c++  java
  • 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(上篇)

  • 相关阅读:
    log4j2 标签解析
    7.3
    work-7.2
    爬取豆瓣上某个用户标记的想读的或者读过的图书信息
    python爬虫程序打包为exe程序并在控制台下运行
    爬取任意两个用户在豆瓣上标记的想读的图书信息的交集
    解决c# progressBar更新出现界面假死
    数据库死锁(大神请路过)
    Excel的下载和读取,部分代码(大神请路过)
    大数据缓存:redis
  • 原文地址:https://www.cnblogs.com/zyfd/p/9881236.html
Copyright © 2011-2022 走看看