💨 作者:
laker
,因为喜欢LOL滴神faker
,又是NBA湖人队🏀(laker
)粉丝儿(主要是老詹的粉丝儿),本人又姓李,故取笔名:laker
❤️喜欢分享自己工作中遇到的问题和解决方案,以及一些读书笔记和心得分享。
🌰本人创建了微信公众号【Java大厂面试官】,用于和大家交流分享
🏰 个人微信【lakernote】,加作者备注下暗号:cv之道
。
文章目录
背景
现在项目开发,技术选型基本上都是Spring Boot、Spring Cloud一统天下了,今天我们来看下如何正确选择版本,以及版本兼容性问题。
1. 新项目使用Spring Boot、Spring Cloud
最简单的入门方法是访问start.spring.io,选择您的Spring Boot版本和要使用的Spring Cloud项目。生成项目时,这会将相应的Spring Cloud BOM版本添加到Maven / Gradle文件中。
2. 将Spring Cloud添加到现有的Spring Boot应用程序
如果您现有的Spring Boot应用程序想要将Spring Cloud添加到该应用程序,则第一步是确定应使用的Spring Cloud版本。您在应用中使用的版本将取决于您使用的Spring Boot的版本。
一. 新项目使用Spring Boot、Spring Cloud
1. 使用start.spring.io网站构建
直接使用 https://start.spring.io/网站构建
选择合适的版本以及需要依赖的组件等。可以选择[GENERATE CTRL + ⏎]生成下载项目或者[EXPLORE CTRL + SPACE]预览pom
.xml
等文件。
2. 使用idea的Spring Initializr构建
原理跟从https://start.spring.io/网站构建一样。
二. 将Spring Cloud添加到现有的Spring Boot应用程序
Maven厂库版本列表,仅能看下所有的版本,但是没有详细的介绍
- spring-cloud-dependencies 版本列表:
https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies - spring-boot-starter-parent 版本列表:
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent
版本号介绍:
- Alpha:不建议使用,主要是以实现软件功能为主,通常只在软件开发者内部交流,Bug较多;
- Beta:该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除;
- GA:General Availability,正式版本,官方推荐使用此版本,在国外都是用GA来说明release版本;
- M:又叫里程碑版本,表示该版本较之前版本有功能上的重大更新;
- PRE(不建议使用):预览版,内部测试版,主要是给开发人员和测试人员测试和找BUG用的;
- Release:最终版本,Release不会以单词形式出现在软件封面上,取而代之的是符号®;
- RC:该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几;
- SNAPSHOT:快照版,可以稳定使用,且仍在继续改进版本。
1. Spring Boot版本介绍
官网链接:https://spring.io/projects/spring-boot#learn
Spring Boot的版本以数字表示。例如:Spring Boot 2.2.5.RELEASE --> 主版本.次版本.增量版本(Bug修复)
2. Spring Cloud版本介绍
官网链接:https://spring.io/projects/spring-cloud#learn
Spring Cloud是一个项目总括,里面包含了很多的子项目,避免子项目之间的混淆,因此命名方式采用英文名字的方式来命名,SpringCloud采用了 英国伦敦地铁站 的名称来命名,并由地铁站名称首字母 A-Z 一次类推的形式来发布迭代版本。例如 Angel 是第一个版本,Brixton 是第二个版本…。
另外,当SpringCloud的发布内容积累到临界点或者一个重大BUG被解决后,会发布一个“service releases” 版本,简称 SRX 版本,比如当前的 Hoxton SR6,就是SpringCloud发布的Hoxton版本的第6个SRX版本。
3. Spring Boot 与Spring Cloud版本兼容
下表概述了哪个版本的Spring Cloud映射到哪个版本的Spring Boot。
来源:https://spring.io/projects/spring-cloud#overview
大版本映射关系:
Release Train | Boot Version |
---|---|
2020.0.x aka Ilford | 2.4.x |
Hoxton | 2.2.x, 2.3.x (Starting with SR5) |
Greenwich | 2.1.x |
Finchley | 2.0.x |
Edgware | 1.5.x |
Dalston | 1.5.x |
Spring Cloud Dalston,Edgware和Finchley均已达到使用寿命终止状态,不再受支持。
这里列出了大版本上的选择,如果想看小版本上的选择可以访问官方提供的网址查看,会返回一个JSON数组。
官方链接:https://start.spring.io/actuator/info
Spring Cloud | Spring Boot |
---|---|
Finchley.M2 | “Spring Boot >=2.0.0.M3 and <2.0.0.M5” |
Finchley.M3 | “Spring Boot >=2.0.0.M5 and <=2.0.0.M5” |
Finchley.M4 | “Spring Boot >=2.0.0.M6 and <=2.0.0.M6” |
Finchley.M5 | “Spring Boot >=2.0.0.M7 and <=2.0.0.M7” |
Finchley.M6 | “Spring Boot >=2.0.0.RC1 and <=2.0.0.RC1” |
Finchley.M7 | “Spring Boot >=2.0.0.RC2 and <=2.0.0.RC2” |
Finchley.M9 | “Spring Boot >=2.0.0.RELEASE and <=2.0.0.RELEASE” |
Finchley.RC1 | “Spring Boot >=2.0.1.RELEASE and <2.0.2.RELEASE” |
Finchley.RC2 | “Spring Boot >=2.0.2.RELEASE and <2.0.3.RELEASE” |
Finchley.SR4 | “Spring Boot >=2.0.3.RELEASE and <2.0.999.BUILD-SNAPSHOT” |
Finchley.BUILD-SNAPSHOT | “Spring Boot >=2.0.999.BUILD-SNAPSHOT and <2.1.0.M3” |
Greenwich.M1 | “Spring Boot >=2.1.0.M3 and <2.1.0.RELEASE” |
Greenwich.SR6 | “Spring Boot >=2.1.0.RELEASE and <2.1.999.BUILD-SNAPSHOT” |
Greenwich.BUILD-SNAPSHOT | “Spring Boot >=2.1.999.BUILD-SNAPSHOT and <2.2.0.M4” |
Hoxton.SR9 | “Spring Boot >=2.2.0.M4 and <2.3.8.BUILD-SNAPSHOT” |
Hoxton.BUILD-SNAPSHOT | “Spring Boot >=2.3.8.BUILD-SNAPSHOT and <2.4.0.M1” |
2020.0.0-M3 | “Spring Boot >=2.4.0.M1 and <=2.4.0.M1” |
2020.0.0-M4 | “Spring Boot >=2.4.0.M2 and <=2.4.0-M3” |
2020.0.0 | “Spring Boot >=2.4.0.M4 and <2.4.2-SNAPSHOT” |
2020.0.1-SNAPSHOT | “Spring Boot >=2.4.2-SNAPSHOT” |
历史版本以及发行说明详细
- 历史每个版本的发行说明
https://github.com/spring-projects/spring-cloud/wiki - 版本最新动态
https://github.com/spring-cloud/spring-cloud-release/wiki
QQ群【837324215】
关注我的公众号【Java大厂面试官】,回复:架构、资源等关键词(更多关键词,关注后注意提示信息)获取更多免费资料。
公众号也会持续输出高质量文章,和大家共同进步。