为什么我们只需要引入一个web开发的起步依赖,web开发所需要的所有的依赖都有了呢
因为Maven的依赖传递。
在SpringBoot给我们提供的这些起步依赖当中,已提供了当前程序开发所需要的所有的常见依赖(官网地址:https://docs.spring.io/spring-boot/docs/2.7.7/reference/htmlsingle/#using.build-systems.starters)。
比如:springboot-starter-web,这是web开发的起步依赖,在web开发的起步依赖当中,就集成了web开发中常见的依赖:json、web、webmvc、tomcat等。我们只需要引入这一个起步依赖,其他的依赖都会自动的通过Maven的依赖传递进来。
结论:起步依赖的原理就是Maven的依赖传递。
起步依赖 官方提供的启动器或第三方提供的
依赖父工程 所以版本锁定 减少冲突
在父工程中有个dependencyManagement标签这个到子工程里面的话 是按需自己继承 也就是说
标签可以拿来写我们子类都共有的依赖
而dependencyManagement写子类可能用到的 我们可以提前指定版本 减少版本冲突
但是 子类如果不想用父类的版本 可以自己指定的
最后生效的是就近原则