SpringCloud02-SpringCloud和SpringBoot的版本选择
本次的SpringCloud第二季分为上半场和下半场,上半场:SpringBoot2.x版和SpringCloud H版,下半场:SpringCloud Alibaba
1、SpringBoot的版本选择
SpringBoot的官网地址:https://spring.io/projects/spring-boot
SpringBoot的git源码地址:https:github.com/spring-projects/spring-boot/releases/
可以看到最新的稳定版是2.2.6(当前时间是2020/04/19),课程录制的时候,最新版本还是2.2.4。
那么我们为啥要选择2.x版本,而不是使用1.x版本呢,因为2.0是一次比较重大的升级,并且是稳定的版本,可以在这里查看SpringBoot2.0的升级记录:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Release-Notes
大致意思是,建议升级到SpringBoot的2.0版本,因为这是Spring Boot的一个主要版本,因此升级现有的应用程序比通常要复杂一些。如果您当前使用的是早期版本的Spring Boot,我们强烈建议您在迁移到Spring Boot 2.0之前升级到Spring Boot 1.5。我们提供了一个专门的迁移指南,帮助您升级现有的SpringBoot1.5应用程序。
我只是为了学习,为了保证环境正常,所以跟周阳老师一样,选择的SpringBoot的版本是2.2,至于为什么是2.2,就要看接下来SpringCloud的版本选择了。
2、SpringCloud的版本选择
2.1 SpringCloud的官网版本查看
SpringCloud的官网地址:https://spring.io/projects/spring-cloud#learn
SpringCloud的git源码地址:https://github.com/spring-projects/spring-cloud/wiki
当SpringCloud的发布内容积累到临界点或一个重大BUG被解决之后,会发布一个“service releases” 版本,简称SRX 版本,X表示的是数字,比如:Hoxton SR1就是Hoxton版本的第一个SRX 版本。
从官网可以查看最新发布的稳定版本是:
课程讲授的时候,SpringCloud的最新版本是Hoxton SR1。为了保持环境一致,所以我也使用的是SR1.
2.2 SpringCloud和SpringBoot的版本对应关系
查看版本对应的关系:https://spring.io/projects/spring-cloud#overview
可以看到,Hoxton对应的SpringBoot的版本是2.2,那么到底选择的是哪个SpringBoot的具体版本呢?
查看更详细的版本对应关系:https://start.spring.io/actuator/info,建议用火狐浏览器访问,因为返回的是json数据,火狐浏览器可以格式化:
SpringCloud是Hoxton。SR3,那么SpringBoot的版本就必须大于2.2.0.M,小于2.3.0.BUILD_SNAPSHOT。这里看到的跟周阳老师那个时候看到的有差异,为了环境一致,所以我使用的也是Hoxton.SR1。这里只是为了记录以后如何去进行版本的选择,可以参考官网。
2.3 SpringBoot为何选择的是2.2.2
至于SpringBoot为何选择是的2.2.2,因为同时用boot和cloud,需要由cloud决定boot版本
https://cloud.spring.io/spring-cloud-static/Hoxton.SR1/reference/html/spring-cloud.html 从这里可以看到,Hoxton SR1推荐的SpringBoot的版本是2.2.2:
3、本次课程的pom文件固定的几个
已经确定了版本选择,所以我们在引入对应的依赖的时候,就可以指定版本了,pom文件中经常要使用的是:
<dependencies>
<!--springboot 2.2.2-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>Hoxton.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--Spring cloud Hoxton.SR1-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2.2.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--Spring cloud alibaba 2.1.0.RELEASE-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>