2.SpringBoot特点

依赖管理

每个Spring Boot版本都提供了它所支持的依赖关系的精选列表。实际上,您不需要为构建配置中的所有这些依赖项提供版本,因为Spring Boot会为您管理该版本。当您升级Spring Boot本身时,这些依赖项也会以一致的方式升级。您仍然可以指定一个版本,并在需要时覆盖Spring Boot的建议。

父项目

  • 任何一个springboot项目都会引入父项目依赖用来做项目版本管理

    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.5</version>
    <relativePath/> <!-- lookup parent from repository -->
    </parent>
  • 当我们按住ctrl点击这个parent依赖可以看到如下

    <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-dependencies</artifactId>
      <version>2.4.5</version>
    </parent>

    这个dependencies是spring-boot-starter-parent父依赖,真正管理Spring Boot应用里面的所有依赖版本,是正真的boot版本仲裁中心,再次进入这个dependencies版本中心,可以看到许多的版本版本声明,列举如下

    <properties>
    <activemq.version>5.16.1</activemq.version>
    <antlr2.version>2.7.7</antlr2.version>
    <appengine-sdk.version>1.9.88</appengine-sdk.version>
    <artemis.version>2.15.0</artemis.version>
    <aspectj.version>1.9.6</aspectj.version>
    <assertj.version>3.18.1</assertj.version>
    <atomikos.version>4.0.6</atomikos.version>
    <awaitility.version>4.0.3</awaitility.version>
    <bitronix.version>2.1.4</bitronix.version>
    <build-helper-maven-plugin.version>3.2.0</build-helper-maven-plugin.version>
    <byte-buddy.version>1.10.22</byte-buddy.version>
    <caffeine.version>2.8.8</caffeine.version>
    <cassandra-driver.version>4.9.0</cassandra-driver.version>
    <classmate.version>1.5.1</classmate.version>
    ....

    所以以后导入其他此处已经存在的依赖默认不需要写版本,比如项目需要使用mysql驱动依赖,我们直接引入依赖,不需要写版本,自动引入默认的版本

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

    图片说明
    如果不想使用默认的版本,在pom文件中使用properties标明,key使用版本中心使用的key,如mysql:<mysql.version>8.0.23</mysql.version>

    <properties>
        <mysql.version>5.1.43</mysql.version>
    </properties>

    但是引入非版本仲裁的jar,要写版本号

开发导入starter场景启动器

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

    spring-boot-starter:spring-boot场景启动器;帮我们导入了web模块正常运行所依赖的组件;
    所以Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器
    SpringBoot所有支持的场景:https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-starter

  • 所有场景启动器最底层的依赖

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <version>2.3.4.RELEASE</version>
    <scope>compile</scope>
    </dependency>
全部评论

相关推荐

把球:这个听过,你加了就会发现是字节的hr
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务