SpringBoot程序的优点可以集中提现为三个方面
- 起步依赖(简化依赖配置)
- 自动配置(简化常用工程配置)
- 辅助功能(内嵌Tomcat,......)
通过四个模块实现了上述方面
- starter
- parent
- 引导类
- 内嵌Tomcat
这节我们主要看看parent和starter到底是个什么玩意
我们在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下重新定义版本
我们只导入了一个 spring-boot-starter-web,但是在Dependencies下怎么会用这么多jar包呢?
我们点进去spring-boot-starter-web看看
在spring-boot-starter-web中,又导入了若干个依赖。他们存在这样一种关系:A依赖B,B依赖C,D,E等等...。属于依赖传递
我们在返回上一层,点进去Tomcat看看
可想而知,里面一定包含了tomcat所需要的一系列依赖