在编写springboot的时候 只需要导入starter-web,关于wab的所有依赖都进来了,为什么会进来
1.父项目做依赖管理
在每个项目中的pom.xml都会存在这么一个配置
依赖管理 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> </parent> 在他的里面又存在父依赖,点进去之后 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.3.4.RELEASE</version> </parent> 几乎声明了所有开发中常用的依赖的版本号,自动版本仲裁机制
继承于这里面的依赖,而版本也在这里面 所以不需要导入版本号就能直接使用
web也在这里 版本都统一好了
2.开发导入的场景启动器
1、见到很多 spring-boot-starter-* : *就某种场景 2、只要引入starter,这个场景的所有常规需要的依赖我们都自动引入 3、SpringBoot所有支持的场景 https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-starter 4、见到的 *-spring-boot-starter: 第三方为我们提供的简化开发的场景启动器。 5、所有场景启动器最底层的依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.3.4.RELEASE</version> <scope>compile</scope> </dependency>
spring-boot-starter这个依赖里都是springboot的核心依赖,当导入某种场景的时候都会包含这个核心场景
3.修改版本号
最好是别修改了,版本不一样会引起依赖冲突
直接去dependencies里面找版本号,比如<MysqL.version>8.0.21</MysqL.version>
1、查看spring-boot-dependencies里面规定当前依赖的版本 用的 key。 2、在当前项目里面重写配置,就近加载 <properties> <MysqL.version>5.1.43</MysqL.version> </properties>