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

此文已由做者易国强受权网易云社区发布。
html

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


两种打包方式

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

jar包方式

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

war包方式

  • 若是采用war包的方式,其实也很简单,咱们仅仅须要变动下配置便可,具体操做以下所示:tomcat

    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包中。在依赖中加入以下内容:app

       <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包时指定运行参数便可。分布式


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


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

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


相关文章:
【推荐】 分布式存储系统可靠性系列一:如何估算
【推荐】 深刻浅出“跨视图粒度计算”--三、EXCLUDE表达式

相关文章
相关标签/搜索