主要梳理一下SpringBoot2.x
的依赖关系和依赖的版本管理,依赖版本管理是开发和管理一个SpringBoot
项目的前提。
SpringBoot
其实是通过starter
的形式,对spring-framework
进行装箱,消除了(但是兼容和保留)原来的XML
配置,目的是更加便捷地集成其他框架,打造一个完整高效的开发生态。
SpringBoot依赖关系
因为个人不太喜欢Gradle
,所以下文都以Maven
举例。
和SpringCloud
的版本(SpringCloud
的正式版是用伦敦地铁站或者说伦敦某地名的英文名称作为版本号,例如比较常用的F
版本Finchley
就是位于伦敦北部芬奇利)管理不同,SpringBoot
的依赖组件发布版本格式是:X.Y.Z.RELEASE
。因为SpringBoot
组件一般会装箱为starter
,所以组件的依赖GAV
一般为:org.springframework.boot:spring-boot-starter-${组件名}:X.Y.Z.RELEASE
,其中X
是主版本,不同的主版本意味着可以放弃兼容性,也就是SpringBoot1.x
和SpringBoot2.x
并不保证兼容性,而组件名一般是代表一类中间件或者一类功能,如data-redis
(spring-boot-starter-data-redis
,提供Redis
访问功能)、jdbc
(spring-boot-starter-jdbc
,提供基于JDBC
驱动访问数据库功能)等等。以SpringBoot
当前最新的发布版本2.3.1.RELEASE
的org.springframework.boot:spring-boot-starter:jar:2.3.1.RELEASE
为例,用mvn dependency:tree
分析它的依赖关系如下: