介绍

:::tips SpringCloud是基于SpringBoot开发的一系列框架的有序集合,把非常流行的微服务的技术整合到一起,提供一个简单易用(注解+起步依赖)的工具包给开发人员,提高开发效率;并隐藏和屏蔽掉复杂的分布式系统中开发的细节 :::

SpringCloud和SpringCloudAlibaba对比

框架集 注册中心 服务调用 配置中心 网关 总线 熔断
SpringCloud eureka feign
openfeign
config zuul

gateway
bus hystrix
SpringCloudAlibaba nacos dubbo nacos nacos sentinel
其它 zookeeper

consul
consul

版本对应关系

image.png

创建初始父工程

新建Maven项目

:::tips 新建普通Maven项目,这个项目就是父工程,用于约定整个SpringCloud项目的版本
:::

删除项目中的文件

:::tips 删除项目中的src目录 :::

管理依赖

  1. <!-- 设置打包方式为pom -->
  2. <packaging>pom</packaging>
  3. <!-- 继承SpringBootParent -->
  4. <parent>
  5. <groupId>org.springframework.boot</groupId>
  6. <artifactId>spring-boot-starter-parent</artifactId>
  7. <version>2.3.9.RELEASE</version>
  8. <relativePath/>
  9. </parent>
  10. <!-- 统一管理依赖版本 -->
  11. <properties>
  12. <!-- Mysql版本 -->
  13. <mysql.version>8.0.21</mysql.version>
  14. <!-- SpringCloud版本 -->
  15. <spring-cloud.version>Hoxton.SR10</spring-cloud.version>
  16. <!-- SpringCloudAlibaba版本 -->
  17. <spring-cloud-alibaba.version>2.2.5.RELEASE</spring-cloud-alibaba.version>
  18. <!-- MybatisPlus版本 -->
  19. <mybatis-plus.version>3.4.3</mybatis-plus.version>
  20. </properties>
  21. <!-- 统一管理依赖 -->
  22. <dependencyManagement>
  23. <dependencies>
  24. <!-- spring-cloud-dependencies依赖用于声明SpringCloud组件版本 -->
  25. <dependency>
  26. <groupId>org.springframework.cloud</groupId>
  27. <artifactId>spring-cloud-dependencies</artifactId>
  28. <version>${spring-cloud.version}</version>
  29. <!-- 解决Maven的单继承问题,相当于同时继承spring-cloud-dependencies -->
  30. <type>pom</type>
  31. <scope>import</scope>
  32. </dependency>
  33. <!-- spring-cloud-alibaba-dependencies依赖用于声明SpringCloudAlibaba组件版本 -->
  34. <dependency>
  35. <groupId>com.alibaba.cloud</groupId>
  36. <artifactId>spring-cloud-alibaba-dependencies</artifactId>
  37. <version>${spring-cloud-alibaba.version}</version>
  38. <!-- 解决Maven的单继承问题,相当于同时继承spring-cloud-alibaba-dependencies -->
  39. <type>pom</type>
  40. <scope>import</scope>
  41. </dependency>
  42. <!-- Mysql -->
  43. <dependency>
  44. <groupId>mysql</groupId>
  45. <artifactId>mysql-connector-java</artifactId>
  46. <version>${mysql.version}</version>
  47. </dependency>
  48. <!-- MybatisPlus -->
  49. <dependency>
  50. <groupId>com.baomidou</groupId>
  51. <artifactId>mybatis-plus-boot-starter</artifactId>
  52. <version>${mybatis-plus.version}</version>
  53. </dependency>
  54. <!-- 其余依赖按需管理 -->
  55. </dependencies>
  56. </dependencyManagement>
  57. <!-- 统一引入依赖 -->
  58. <dependencies>
  59. <dependency>
  60. <groupId>org.projectlombok</groupId>
  61. <artifactId>lombok</artifactId>
  62. </dependency>
  63. <!-- 其余依赖按需引入 -->
  64. </dependencies>

创建子工程

新建模块

:::tips 在父工程下创建子工程,注意需要指定父工程,子工程对应的就是微服务的模块 :::

引入依赖

  1. <dependencies>
  2. <!-- SpringBootWeb起步依赖 -->
  3. <dependency>
  4. <groupId>org.springframework.boot</groupId>
  5. <artifactId>spring-boot-starter-web</artifactId>
  6. </dependency>
  7. <!-- Mysql驱动 -->
  8. <dependency>
  9. <groupId>mysql</groupId>
  10. <artifactId>mysql-connector-java</artifactId>
  11. </dependency>
  12. <!-- MybatisPlus起步依赖 -->
  13. <dependency>
  14. <groupId>com.baomidou</groupId>
  15. <artifactId>mybatis-plus-boot-starter</artifactId>
  16. </dependency>
  17. <!-- Nacos起步依赖 -->
  18. <dependency>
  19. <groupId>com.alibaba.cloud</groupId>
  20. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  21. </dependency>
  22. <!-- 其余依赖按需引入 -->
  23. </dependencies>
  24. <build>
  25. <plugins>
  26. <plugin>
  27. <groupId>org.springframework.boot</groupId>
  28. <artifactId>spring-boot-maven-plugin</artifactId>
  29. </plugin>
  30. </plugins>
  31. </build>