zoukankan      html  css  js  c++  java
  • 说说spring-boot-starter-parent

    一、spring-boot-starter-parent是什么?

    spring-boot-starter-parent是一个特殊的starter,其内置了许多springboot默认的maven依赖。使用spring-boot-starter-parent后,可以省去version标签,方便维护统一的版本。

    除此之外,spring-boot-starter-parent中还做了一些设置,

    <properties>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <resource.delimiter>@</resource.delimiter>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.target>${java.version}</maven.compiler.target>
      </properties>
    

    仔细看可以发现spring-boot-starter-parent的pom文件中并没有dependencyManagement节点,也没有version信息,是因为这些信息是在spring-boot-dependencies中声明的,查看spring-boot-dependencies的pom文件,会有以下内容。

    <properties>
        <activemq.version>5.15.12</activemq.version>
        <antlr2.version>2.7.7</antlr2.version>
        <appengine-sdk.version>1.9.79</appengine-sdk.version>
        <artemis.version>2.10.1</artemis.version>
        <aspectj.version>1.9.5</aspectj.version>
        <assertj.version>3.13.2</assertj.version>
        ...
    </properties>
    
    <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot</artifactId>
            <version>2.2.6.RELEASE</version>
          </dependency>
          <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-test</artifactId>
            <version>2.2.6.RELEASE</version>
          </dependency>
          ...
    </dependencyManagement>
    

    二、spring-boot-starter-parent如何使用?

    1.父工程引入

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.6.RELEASE</version>
    </parent>
    

    优势:可使用spring-boot-starter-parent中的全部配置
    弊端:不灵活,只能继承唯一的Parent。如果公司有通用的Parent,只能通过下面这种方式引入

    2.正常依赖引入

    <dependencyManagement>
          <dependencies>
                <dependency>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-starter-web</artifactId>
                </dependency>
          </dependencies>
    </dependencyManagement>
    

    优势:灵活。一般公司会有自己通用的Parent。
    弊端:无法使用SpringBoot默认的一些配置,需要自己手动配置。

  • 相关阅读:
    从零开始设计一套指令集及其虚拟机
    一种高效整数开平方算法:逐比特确认法
    C 可变参数函数的本质
    C 基础数据类型 性能测试
    用C在GBA上写光线追踪(0)配置开发编译环境
    用C#写小工具:将圆柱面贴图映射到半球贴图
    Linux 硬盘UUID相同处理方法
    ELK6.x_Kafka 安装配置文档
    Nagios4.x安装配置总结
    Cacti-0.8.8b详细安装及配置步骤
  • 原文地址:https://www.cnblogs.com/wugang/p/14144253.html
Copyright © 2011-2022 走看看