一步步学习springcloud之总览(一)
最近学习了spring security oauth2的一些知识,发现很多别人写的代码都多少带上了springcloud的身影。决定好好学习一下springcloud。之前使用过dubbo。对于springcloud也只有耳闻和看过一些教程,没有实际上手过。这次就来好好学习一下,自己也动动手。
springcloud和springboot
springboot是快速构建spring应用的脚手架,同样也是构建springcloud的脚手架。我的理解有点像nodejs中vue和vue-cli的关系。但是有有些不同的是,springcloud好像必须使用springboot进行构建。所以可以说springcloud项目都是springboot项目。
关于版本
我没有仔细去研究springcloud的版本更新情况,但是从网上的教程和一些问答看到springcloud和springboot的版本是有一些关联的。
比如我之前使用
组件 | 版本 |
---|---|
springcloud | Hoxton.SR4 |
springboot | 2.1.4.RELEASE |
就出现了ClassNotFoundException。
查找解决方案的时候,别人给的建议就是使用下面的版本搭配。这个的学习过程中我也是使用这个版本搭配。
组件 | 版本 |
---|---|
springcloud | Hoxton.SR3 |
springboot | 2.2.5.RELEASE |
另外springcloud和springboot的升级过程中也有很多依赖项目名称的变化。如果自己项目使用的版本和网络上面示例使用的版本差距很大,那么很多情况下一些配置也都不能直接使用。
比如项目中的maven依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
在有些教程中使用的是下面这个配置。(在我使用的springcloud里面就不能使用这个依赖)
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
所以学习springcloud的时候,关于springcloud和springboot的版本要先确定好。
这里有个方法,就是使用下面要提到的Spring initializr的初始化工具,选择好springboot版本,添加springcloud依赖,可以看下pom文件(或者build.gradle文件)官方给你的springboot和springcloud版本建议是啥。
项目构建
目前java构建项目比较好也比较流行的是maven和gradle。springboot项目构建,很多会使用Spring initializr的初始化工具。通过这个工具可以快速配置一个有相关依赖的springboot项目(可以选择使用maven或者gradle构建)。
但是作为初学者,对于Spring initializr中很多组件都不了解的情况下,使用时不知道应该勾选哪些组件。所以个人比较倾向于在普通maven项目的基础上增加springcloud和springboot的相关配置,来构建一个springcloud应用。