spring boot starter 如何引入 spring 包?

在使用spring的过程中,我们会用到spring的核心jar包,比如 spring-web,spring-aop,那么spring boot starter是如何引入上述jar包的呢?

spring boot starter 如何引入 spring 包?

 

 

 

【注】示例使用的版本,spring-boot-starter-parent (1.5.15.RELEASE),对应的spring mvc 版本为 4.3.18.RELEASE。

前提知识

1、为什么引入dependency可以不写 version?

  若project A ->(继承自) project B,通过在project B中配置<dependencyManagement>

  在project A 中,引入fastjson和commons-lang3的jar包时,即可以不指定版本。

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.47</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.9</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

 

2、maven 继承

  project A ->(继承自) project B

  若 project B 依赖某个jar,如下【注意dependencies不在 dependencyManagement内】,则 project A 继承 project B 的 fastjson包。

    <dependencies>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
    </dependencies>

 

3、<scope>import</scope>

  当使用dependencyManagement时,若dependencyManagement的dependencies过多,会使得pom文件过长,这时我们把dependencyManagement内部的dependencies提取出来,形成一个pom,然后通过<scope>import</scope>引入,减少当前项目pom文件的长度。

 

正文

当我们创建一个spring-boot项目时,pom文件结构如下

spring boot starter 如何引入 spring 包?

 

 

 与之对应的,pom继承关系,如下,

 

spring boot starter 如何引入 spring 包?

 

 

 

 

 

 

 上图中,红色箭头代表继承,灰色箭头代表dependency依赖,pom文件用白底背景框,jar包用绿底框,目标jar包用红底框。

一、

在上图spring-boot-denpendencies的pom文件 的 <dependencyManagement>中,有如下依赖,该依赖<scope>import</scope>,实际上指向文件 spring-framework-bom-4.3.18.RELEASE.pom ,此文件提供spring mvc 4.3.18的所有 dependencyManagement。

spring boot starter 如何引入 spring 包?

 

 

 二、

在spring-boot-denpendencies的pom文件中,依赖 spring-boot-starter-web (1.5.15.RELEASE),而【spring-boot-starter-web-1.5.15.RELEASE.jar】,内部只有一个pom文件,内容包含了spring-web,如下图,pom中未指定spring-web的版本,但是前面的步骤中我们已经在dependencyManagement中看到,版本是4.3.18.RELEASE。

spring boot starter 如何引入 spring 包?

 

 

完结。

 

上一篇:dependencyManagement与dependencies


下一篇:maven学习