ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

spring boot starter 如何引入 spring 包?

2020-07-16 16:01:07  阅读:287  来源: 互联网

标签:dependencyManagement spring boot jar project pom starter


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

 

 

 

【注】示例使用的版本,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文件结构如下

 

 

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

 

 

 

 

 

 

 

 上图中,红色箭头代表继承,灰色箭头代表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-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。

 

 

完结。

 

标签:dependencyManagement,spring,boot,jar,project,pom,starter
来源: https://www.cnblogs.com/leondryu/p/13323110.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有