• SpringBoot(原理篇 ==> 解析起步依赖


    SpringBoot程序的优点可以集中提现为三个方面

    • 起步依赖(简化依赖配置)
    • 自动配置(简化常用工程配置)
    • 辅助功能(内嵌Tomcat,......)

    通过四个模块实现了上述方面

    • starter
    • parent
    • 引导类
    • 内嵌Tomcat

    这节我们主要看看parent和starter到底是个什么玩意

     

    一、parent 

    我们在pom.xml里随便下一个依赖先

    可以发现,我们并没有指定版本,可生成的jar包为什么自动给我们指定了4.0.1版本呢?

    那SpringBoot是如何帮助我们指定版本的呢?

     当前配置文件在这里继承了一个spring-boot-starter-parent,我们点进去看看 

    这里面并没有我们想要的信息,再点进去它继承的spring-boot-dependencies里面看看

     

    这里面有一大堆的版本号,包括我们刚刚javax-servlet-api的版本 

    但是定义了好了版本,又是在哪里使用了这个版本呢?

    我们直接搜索一下javax-servlet-api

    那如果我们并不想要它给我们指定的版本呢?

    比如这里是mysql驱动jar包默认的是8.0.30版本 

     

    可以在pom.xml下的properties下重新定义版本 

    总结一下 

    1. 开发SpringBoot程序要继承spring-boot-starter-parent
    2. spring-boot-starter-parent定义了若干个依赖管理
    3. 继承parent模块可以避免多个依赖使用相同技术时出现版本冲突

     

    二、starter 

    我们只导入了一个 spring-boot-starter-web,但是在Dependencies下怎么会用这么多jar包呢?

    我们点进去spring-boot-starter-web看看

     

    在spring-boot-starter-web中,又导入了若干个依赖。他们存在这样一种关系:A依赖B,B依赖C,D,E等等...。属于依赖传递

     我们在返回上一层,点进去Tomcat看看

    可想而知,里面一定包含了tomcat所需要的一系列依赖 

     

    总结一下 

    1. 开发SpringBoot程序需要导入坐标时,通常导入对应的starter
    2. 每个不同的starter根据功能不同,通常包含多个依赖坐标
    3. 使用starter可以实现快速配置的效果,实现简化配置的效果

     

     本章总结:

    • starter
      • SpringBoot中常见项目名称,定义了当前项目中所有的依赖坐标,达到减少依赖配置效果
    • parent
      • 所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(是依赖管理,不是依赖),达到减少依赖冲突的目的
      • spring-boot-starter-parent各版本间存在着诸多坐标版本不同
    • 实际开发
    • 使用任意坐标,只用书写GAV(groupId、artifactId、version
      )中的G和A,V由SpringBoot提供,除非SpringBoot未提供
    • 如果发生坐标错误,再指定V 

     

     

     

     

     

     

  • 相关阅读:
    自制操作系统日志——第二十七天
    Java skill - 动态指定feign的访问地址
    ssm基于微信小程序的学习资料销售平台+ssm+uinapp+Mysql+计算机毕业设计
    董事长、CEO、总裁、总经理、总监的区别
    【毕业设计源码】基于小程序蔬菜/零食商城系统
    Abbexa丨Abbexa 脱落酸 (ABA) ELISA试剂盒方案
    教你面试的时候如何迅速完成90%以上的海量数据处理题
    小程序中如何给会员一键拨号
    【智能优化算法-蝙蝠算法】基于混合粒子群和蝙蝠算法求解单目标优化问题附matlab代码
    (黑马C++)L01 C++概述
  • 原文地址:https://blog.csdn.net/weixin_48841931/article/details/126896964