SpringBoot——pom文件:parent

先看一看:

本次我们主要介绍SpringBoot的文件,先来看一看里面都有什么内容:

 


    4.0.0

    
        org.springframework.boot
        spring-boot-starter-parent
        2.7.11
         
    

    com.example
    SpringBootTest01
    0.0.1-SNAPSHOT
    SpringBootTest01
    SpringBootTest01

    
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.3.0
        

        
            com.mysql
            mysql-connector-j
            runtime
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


我就直接复制了pom.xml文件中的内容,其中我们看到第一个关键词叫做parent,继承:

Parent:

如果之前了解过Maven的应该知道这个词代表的意思,表示在这个项目中引用一个已经写好的父项目中的内容。在SpringBoot项目中,它的作用是维护了与Spring Boot有关的依赖包的版本号。是什么意思呢,还记得之前我们在引入以来坐标的时候写过什么吗,一个是分组ID,一个是工件ID,一个是版本号(这三个一起叫做GAV),在之前的时候,我们会遇到过比如我引入了一个Servlet的依赖坐标,但是Tomcat中已经有了一个Servlet的jar包,这两个包就会冲突,这是最常见的Jar包冲突,我们就要去修改调整版本号,让两个jar包版本号一样或者至少能兼容,这是一个非常累人的过程,一个两个还好,但是如果十几个几十个jar包去调整,那就很可怕了。

所以SpringBoot就经过自己的测试,说,我们现在测试了你用的技术对应SpringBoot版本的最合适的版本号,你引用第三方技术的时候就不用自己写版本号了,这个版本号我给你,你只需要写名字就可以了。我们就去看看他是怎么做的:

SpringBoot——pom文件:parent_第1张图片

按住ctrl然后点击红色框里的内容,跳转到另一个pom文件:

 SpringBoot——pom文件:parent_第2张图片

然后继续点击红色框里的内容:

SpringBoot——pom文件:parent_第3张图片

然后往下滑,全部都是版本号,然后继续滑动:

SpringBoot——pom文件:parent_第4张图片 

在这里就引用了我们具体的引用版本号的依赖项,当我们使用一项技术的时候,我们实际上引用的就是这里写好的依赖:

比如现在我们引入一个尝试一下:

SpringBoot——pom文件:parent_第5张图片 lombok是一个用来简化开发的技术,SpringBoot就维护了它的版本我们来看一下是多少:

SpringBoot——pom文件:parent_第6张图片 

得到了是1.18.26,我们在我们的pom文件中引入一下:

SpringBoot——pom文件:parent_第7张图片 

先看一下,现在我们是没有这个依赖的:

SpringBoot——pom文件:parent_第8张图片 

现在我们引入一下,注意我没有写版本号,现在刷新一下Maven:

SpringBoot——pom文件:parent_第9张图片 

现在这个依赖就被加载进来了,注意版本号,我没有写,但是他还是上去了,是之前我们看的1.18.26,说明我们之前猜想的确实没错,它里面维护了大部分的SpringBoot能用的第三方技术并且有最合适的版本号,当我们使用的时候,可以只写名字,不用写版本号,就防止了版本冲突。这个操作最主要的作用还是为了做依赖的统一化管理。

注意我之前说的,是大部分的依赖,不是全部的依赖,如果有一个依赖没有版本号怎么办,比如现在我要导入druid的依赖,这里面就没有:

SpringBoot——pom文件:parent_第10张图片 我依然不写版本号,看这次他能不能找到:

SpringBoot——pom文件:parent_第11张图片

报错了,没有找到对应的jar包,版本未知,也就是说他没有维护druid。这时候就需要我们手动的去写它的版本号,并且需要自己去注意它的冲突问题。

SpringBoot——pom文件:parent_第12张图片 

指定版本号之后就可以正常的导入了。 

 

你可能感兴趣的:(spring,boot,java,spring)