SpringCloud搭建(非Alibaba),多项目共享依赖、工具类以及依赖版本管理

本文详细介绍了如何选择SpringBoot和SpringCloud的对应版本,以及如何搭建一个多项目共享依赖的SpringCloud项目。通过创建全局父项目和公用子项目,管理公共依赖,实现版本统一。此外,还讲解了在私有子项目中如何使用公用项目中的工具类和依赖,并通过全局配置文件进行版本控制。

版本选择

参考网站
参考demo
说明:
springboot和springCloud有严格的版本对应关系,如果版本冲突会导致程序无法运行
注意:2022及之后的版本JDK8将不再适用,谨慎选择
关于springboot和springCloud版本对应关系的获取:

  • 首先打开网站
  • 在overview选项,下拉,找到版本对应关系
    在这里插入图片描述
    在这里插入图片描述
  • 需要注意的是我们找到的仅仅是版本描述,而不是具体的版本号,不可以直接进行使用
  • 其中boot的版本描述中的X,如3.0.X,指的是以3.0.开头的任何版本,X可以是0到9或者其他release版本,如我们选择springboot版本为3.0.0
  • cloud版本的选择需要我们点击链接进去
    在这里插入图片描述
  • 打开github,找到Spring Cloud XXX Notes
    在这里插入图片描述
  • 然后一直下拉,找到有发行日期的,才是真正的版本号,例如我们选择2022.0.0-RC3
    在这里插入图片描述
  • 然后我们将选择后的版本放在springCloud项目的版本控制中(下面步骤会提到),完成
    在这里插入图片描述

springCloud项目的搭建

  1. 项目结构介绍
    参考视频第39节
    参考demo在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
2.项目搭建流程(IDEA)
(1).( 旧版的IDEA,新版的到第3步)创建父项目(全局项目) File→new model 然后什么都不要选直接下一步
在这里插入图片描述

(2).( 旧版的IDEA,新版的到第3步)规定项目名、路径直接完成
在这里插入图片描述
(3)(新版的IDEA),new →project→maven archetype,选择相关信息,并选择quick start类型,完成
在这里插入图片描述

(4)进入项目,然后直接将src文件夹删掉
在这里插入图片描述
(4).然后添加依赖:springcloud依赖及管理、springboot版本管理(不推荐,但是不影响运行

springCLoud版本及管理

    <!--定义springcloud使用版本号-->
    <properties>
        <java.version>1.8</java.version>
        <spring.cloud.version>Hoxton.SR6</spring.cloud.version>
    </properties>

    <!--全局管理springcloud版本,并不会引入具体依赖-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${
   
   spring.cloud.version}</version>
                <type>pom</type>
                <scope>
### 关于 Spring Cloud Alibaba 项目搭建 #### 微服务架构概述 Spring Cloud Alibaba 是阿里巴巴基于 Spring Cloud 提供的一套微服务解决方案,旨在帮助开发者更方便地构建分布式应用系统。它集成了个中间件工具,如 Nacos、Sentinel 和 RocketMQ 等[^1]。 --- #### 创建父工程 通过 Maven 构建一个模块的父工程,定义统一的版本管理策略。以下是 `pom.xml` 文件的关键部分: ```xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.5</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <java.version>1.8</java.version> <spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring-cloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> ``` 上述代码片段展示了如何引入 Spring Cloud Alibaba依赖管理[^3]。 --- #### 创建通用子模块 (common) 该模块用于存储公共类和工具方法。在 `pom.xml` 中添加必要的依赖项: ```xml <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> </dependencies> ``` 此模块可以被其他子模块共享使用。 --- #### 创建业务处理子模块 (engine) 业务逻辑通常封装在此模块中。需要引入数据库访问支持以及事务管理等功能。例如,在 `pom.xml` 中加入以下内容: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> ``` 同时配置数据源信息到 `application.yml` 文件中: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC username: root password: your_password driver-class-name: com.mysql.cj.jdbc.Driver ``` 以上设置确保了与 MySQL 数据库的成功连接。 --- #### 配置网关模块 (gateway) Spring Cloud Gateway 是新一代 API 网关框架,具有高性能特点。可以通过以下方式引入并启用: 在 `pom.xml` 中添加 Starter: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> ``` 随后编写路由规则至 `application.yml` 文件: ```yaml spring: cloud: gateway: routes: - id: user_service_route uri: lb://USER-SERVICE predicates: - Path=/users/** ``` 这段 YAML 定义了一个简单的负载均衡路径匹配规则[^2]。 --- #### 使用 Nacos 进行服务注册与发现 Nacos 不仅是一个服务注册中心,还提供了动态配置管理能力。安装完成后需执行命令开放本地回环接口权限: ```bash sudo iptables -A INPUT -i lo -j ACCEPT ``` 接着修改项目的 `bootstrap.yml` 来指定 Nacos 地址: ```yaml spring: application: name: demo-service cloud: nacos: discovery: server-addr: localhost:8848 ``` 这样就完成了基本的服务注册流程[^4]。 --- #### 实现流量控制与熔断机制 (Sentinel) 为了增强系统的稳定性,推荐集成 Sentinel 组件来实施限流和降级措施。首先声明依赖关系: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> ``` 之后按照官方文档完成具体参数调整即可生效。 --- #### 总结 本文档介绍了从零开始建立一个完整的 Spring Cloud Alibaba 工程所需的主要环节及其对应的技术要点。每一步都紧密围绕实际开发需求展开论述,并辅以实例说明以便理解吸收。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PH = 7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值