美文网首页SpringBoot专题
02、SpringBoot依赖管理及启动器的相关介绍

02、SpringBoot依赖管理及启动器的相关介绍

作者: Albert_Yu | 来源:发表于2019-06-14 00:14 被阅读0次

    本文中对于SpringBoot的依赖管理的介绍都是使用Maven进行依赖管理的

    1、依赖管理

      每个版本的Spring Boot提供了一个它所支持的依赖关系列表。 实际上,您不需要为构建配置文件中的这些依赖关系提供版本,因为Spring Boot会为您进行管理这些依赖的版本。 当您升级Spring Boot本身时,这些依赖关系也将以一致的进行升级。
      如果在使用的过程中你发现当前的SpringBoot管理的某个依赖版本不适合你的时候,你可以指定一个版本并覆盖SpringBoot建议的版本。用mysql-connector-java这个依赖举例,当你使用的SpringBoot的版本是1.5.2.RELEASE的时候,SpringBoot建议的依赖版本是5.1.42,如下图所示:


    image.png

    当你需要对mysql-connector-java这个依赖进行单独升级的话,你可以这样做:

    <properties>
        <mysql.version>5.1.42</mysql.version>
    </properties>
    

    这时候,你的mysql-connector-java这个依赖的版本就会变成5.1.42。

    2、使用没有父pom的Spring Boot

    如果你不想使用spring-boot-starter-parent,则可以通过使用scope=import依赖来保持依赖管理(但不能进行插件管理)

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>1.5.2.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

    需要注意的是该设置就不能使用之前的那种properties标签来对依赖的版本进行覆盖。要实现相同的结果,需要在spring-boot-dependencies之前添加。

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.42</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>1.5.2.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

    不是每个人都喜欢从spring-boot-starter-parent POM继承。 您公司可能有自己标准的parent,或者您可能只希望明确声明所有的Maven配置。

    如果您不想使用spring-boot-starter-parent,则可以通过使用scope=import依赖来保持依赖管理(但不能进行插件管理):

    <dependencyManagement>
         <dependencies>
            <dependency>
                <!-- Import dependency management from Spring Boot -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>1.5.2.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

    该设置不允许您使用如13.2.1 所述的属性来覆盖单个依赖关系。 要实现相同的结果,您需要在spring-boot-dependencies条目之前在项目的dependencyManagement中添加一个条目。 例如,要升级到另一个Spring Data发行版本,您需要将以下内容添加到您的pom.xml中。

    <dependencyManagement>
        <dependencies>
            <!-- Override Spring Data release train provided by Spring Boot -->
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-releasetrain</artifactId>
                <version>Fowler-SR2</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>1.5.2.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

    3、启动器

      启动器是一组方便的依赖关系描述符,可以包含在应用程序中。 您可以获得所需的所有Spring和相关技术的一站式服务,无需通过示例代码搜索和复制粘贴依赖配置。 例如,如果要开始使用Spring和JPA进行数据库访问,那么只需在项目中包含spring-boot-starter-data-jpa依赖关系即可。
      启动器包含许多依赖关系,包括您需要使项目快速启动并运行,并具有一致的受支持的依赖传递关系。

    (1)、启动器的命名方式

    SpringBoot所有起动器都遵循类似的命名模式: spring-boot-starter- * ,其中 * 是特定类型的应用程序。 这个命名结构旨在帮助你快速找到一个启动器。
    如果你想自定义一个启动器的话,官方建议的命名规则为 -spring-boot-starter-
    官方定义了很多的启动器,在这里我就不一一罗列了,有兴趣的可以自行去github上查看

    相关文章

      网友评论

        本文标题:02、SpringBoot依赖管理及启动器的相关介绍

        本文链接:https://www.haomeiwen.com/subject/oljyfctx.html