SpringCloud微服务聚合工程创建指南

前言

在微服务开发中,Spring Boot、Spring Cloud 和 Spring Cloud Alibaba 是三个非常重要的框架和技术栈。然而,许多开发者在使用这些框架时,经常会遇到版本兼容性的问题。本文将详细解释这三者的版本选择和对应关系,将这三者整合初始化新建一个maven聚合工程,帮助开发者更好地理解和使用这些框架。

概述

  • Spring Boot:是一个快速开发微服务的框架,它简化了基于 Spring 的应用开发,提供了许多自动配置的功能。
  • Spring Cloud:是基于 Spring Boot 实现的一套微服务解决方案,包括服务注册与发现、配置管理、断路器、智能路由、微代理、控制总线等。
  • Spring Cloud Alibaba:是 Spring Cloud 的一个扩展,集成了阿里巴巴的多个开源组件,如 Nacos、Sentinel、RocketMQ 等,提供了更加丰富的微服务解决方案。

1 准备工作

在开始创建聚合工程之前,确保你已经安装和拥有了下列环境

环境说明:windows11、idea2023.3.8,maven3.6.3、openjdk8

  1. idea2023.3.8官网地址:idea官网下载
  2. maven3.6:windwos安装多版本Maven(图文详细版)
  3. openjdk8:OracleJDK与OpenJDK的区别(附带win11下多版本jdk安装)

注意:示例工程只展示基础常用的模块,可以根据项目自行需要添加对应模块,理解思路和过程就行。

jialiangkj-pet-common: 通用模块,项目中常用的一些工具类和公共类等。
jialiangkj-pet-pojo: 实体类模块,存放实体类对象,例如: BO、VO等对象。
jialiangkj-pet-api: web接口的公用依赖
jialiangkj-pet-gateway: 微服务网关
jialiangkj-pet-auth-service: 鉴权中心
jialiangkj-pet-file-service: 文件资源服务

本文将按照以下环境进行创建工程

  • SpringBoot2.7.18
  • SpringCloud2021.0.9
  • SpringCloud Alibaba2021.0.6.1

如果想了解单体架构如何创建项目工程的请查看:Springboot创建Mave聚合工程(可灵活创建任意版本)

2 关于版本问题

正确的版本选择对于项目的稳定性和性能至关重要。不合适的版本组合可能会导致各种问题,如依赖冲突、功能缺失等。因此,了解各版本之间的对应关系是非常必要的。

Spring Boot、Spring Cloud 和 Spring Cloud Alibaba 版本对应关系

大多数开发者都是直接按照网上的步骤和教程使用版本,但很多人并不清楚这三个版本的对应关系,接下来将从官网入手查看版本对应关系。

浏览器打开springboot官网:https://spring.io/projects/spring-boot#learn,查看可选择的GA版本

image-20241104110340201

由于SpringBoot3以上系列,最低需要jdk17以上进行支持,但是目前企业里大多数项目还是使用jdk8(成熟稳定运行多年)且生态支持繁荣,所以我们本次示例使用SpringBoot2.X系列最后一个版本2.7.18进行示范。

确定好使用springboot2.7.18版本之后,那么我们查看SpringCloud对应的应该使用哪个版本进行匹配。

点击后滚轮鼠标下滑

image-20241111013729715

我们可以看到SpringBoot2.6.x、2.7.x对应的Cloud版本为2021.0.x

image-20241111013859937

这里我们在点击SpringCloud Alibaba,发现Spring官网并没有跟新版本号,我们需要去Alibaba的github官网查看最新版本号

image-20241111014413446

SpringCloud Alibaba的github官方地址:https://github.com/alibaba/spring-cloud-alibaba

可以知道SpringBoot2.7.x版本对应的 SpringCloud Alibaba版本为2021.x版本

image-20241111014734959


具体版本号和依赖获取

最终具体版本确定可以查看maven官方仓库确认,maven仓库官方地址:https://mvnrepository.com/

1.SpringBoot版本依赖坐标获取

进入maven仓库后搜索:spring boot starter parent

image-20241111015730430

进入后下滑找到2.7.18版本

image-20241111015810764

点击进入后可以获取pom文件依赖坐标

image-20241111015854352

最终SpringBoot2.7.18 对应版本依赖坐标如下

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.18</version>
    <type>pom</type>
</dependency>

2.SpringBoot版本依赖坐标获取

进入maven仓库后搜索:spring-cloud-dependencies

image-20241111020129802

找到2021.0.x最后更新的小版本

image-20241111020225275

点击进入后可以获取pom文件依赖坐标

image-20241111020253826

最终SpringCloud2021.0.9 对应版本依赖坐标如下

<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>2021.0.9</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

3.SpringBoot版本依赖坐标获取

进入maven仓库后搜索:spring-cloud-alibaba-dependencies

image-20241111015100486

进入后找到2021.0.x最后更新版本的日期小版本进行选择

image-20241111015256612

点击进入后可以获取pom文件依赖坐标

image-20241111015401887

最终SpringCloud Alibaba 对应版本依赖坐标如下

<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-alibaba-dependencies -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>2021.0.6.1</version>
    <type>pom</type>
</dependency>

至此我们需要的三个SpringBoot2.7.18、SpringCloud2021.0.9 和 SpringCloud Alibaba2021.0.6.1的版本对应关系和相关安装依赖已经完成。

3 Idea新建Maven工程

spring官方模版新建时无法选择旧版本创建

因为我们要创建springboot2.7.18版本,所以不选择上述创建方式,思路是先创建maven聚合工程,然后再引入springboot低版本的依赖

打开idea新建工程

image-20241103212156330

根据自己需要填写项目名称,保存路径等

image-20241103212422048

选择已有的jdk,此处选择spring官方推荐使用BellSoft Liberica JDK

image-20241103212549850

点击创建后选择this windows当前窗口打开项目工程

配置本地maven库

image-20241103213352420

根目录模块下鼠标右键添加api模块

image-20241103213605677

创建模块api模块

image-20241103213930132

添加common通用模块

image-20241103225316208

添加gateway模块

image-20241111121718256

添加pojo模块

image-20241103225446068

添加模块完成后点击项目根目录模块的pom文件可以看到如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值