二者区别
Java中说到微服务肯定离不开Spring Boot和Spring Cloud,这两者到底有什么关系,什么是微服务,如果单纯的说SpringBoot,SpringCloud,都是不准确的,那应该怎么回答。
官网对于Spring Boot的介绍
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".
SpringBoot相对于传统基于springframework的项目来说,大大简化了开发配置,当我们指定其Parent版本后,只需要引入需要的Starter就可以快 速开发,实现
just run
,不用再去考虑相关jar包之间的依赖,版本冲突问题,体现了约定大于配置,是一种落地生根的技术。官网对于Spring Cloud的介绍
Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems
Spring Cloud为开发人员提供了一些工具来快速构建分布式系统中的一些常见模式(例如配置管理、服务发现、断路器、网关路由),可以理解为对于微服务中常见的场景和问题,Spring Cloud提供了一站式的解决方案。
总结:
Spring Boot build anything 构建一切
Spring Cloud coordinate anything 协调一切
Spring Boot是一种快速开发技术实现,约定大于配置;Spring Cloud提供了微服务系统中一站式的解决方案,每个微服务方案都以Spring Boot为基础。
SpringBoot版本介绍
官网链接:https://spring.io/projects/spring-boot#learn
Spring Boot的版本以数字表示。例如:Spring Boot 2.2.5.RELEASE --> 主版本.次版本.增量版本(Bug修复)
版本号介绍:
- Alpha:不建议使用,主要是以实现软件功能为主,通常只在软件开发者内部交流,Bug较多;
- Beta:该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除;
- GA:General Availability,正式版本,官方推荐使用此版本,在国外都是用GA来说明release版本;
- M:又叫里程碑版本,表示该版本较之前版本有功能上的重大更新;
- PRE(不建议使用):预览版,内部测试版,主要是给开发人员和测试人员测试和找BUG用的;
- Release:最终版本,Release不会以单词形式出现在软件封面上,取而代之的是符号(R);
- RC:该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几;
- SNAPSHOT:快照版,可以稳定使用,且仍在继续改进版本。
SpringCloud版本介绍
官网链接:https://spring.io/projects/spring-cloud#learn
Spring Cloud是一个项目总括,里面包含了很多的子项目,避免子项目之间的混淆,因此命名方式采用英文名字的方式来命名,Spring Cloud的名字以Release Trains的形式,采用伦敦地铁站,以A-Z字母顺序表发布,当前最新版本为Hoxton SR3
- SR.X 修正版,服务版本,当项目发布积累到一定程度,需要修复该版本中的某个错误后以此来命名,X表示数字。
如何选择合适的版本
Spring Cloud是基于Spring Boot技术为基础的,在技术选型时,版本不是随便选择的,参考官网介绍
官方链接:https://spring.io/projects/spring-cloud
Release Train | Boot Version |
---|---|
Hoxton | 2.2.x |
Greenwich | 2.1.x |
Finchley | 2.0.x |
Edgware | 1.5.x |
Dalston | 1.5.x |
这里列出了大版本上的选择,如果想看小版本上的选择可以访问官方提供的网址查看,会返回一个JSON数组。
官方链接:https://start.spring.io/actuator/info
附:开发环境的要求
- JDK 1.8 or later
- Gradle 4+ or Maven 3.2+