当前位置: 首页 > news >正文

Spring Cloud工程搭建

目录

工程搭建

搭建父子工程

创建父工程

Spring Cloud版本

创建子项目-订单服务

声明项⽬依赖 和 项⽬构建插件

创建子项目-商品服务

声明项⽬依赖 和 项⽬构建插件


工程搭建

因为拆分成了微服务,所以要拆分出多个项目,但是IDEA只能一个窗口有一个项目,为了解决这个问题,我们采用父子工程搭建。

搭建父子工程
创建父工程
1. 创建⼀个空的Maven项⽬, 删除所有代码, 只保留pom.xml
2. 完善pom⽂件
使⽤properties来进⾏版本号的统⼀管理, 使⽤dependencyManagement来管理依赖, 声明⽗⼯程的打包⽅式为pom.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.wmh</groupId><artifactId>spring-cloud-demo1</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><modules><module>order-service</module><module>product-service</module></modules><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.6</version><relativePath/> <!-- lookup parent from repository --></parent><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><java.version>17</java.version><mybatis.version>3.0.3</mybatis.version><mysql.version>8.0.33</mysql.version><spring-cloud.version>2022.0.3</spring-cloud.version></properties><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter-test</artifactId><version>${mybatis.version}</version><scope>test</scope></dependency></dependencies></dependencyManagement></project>

DependencyManagement 和 Dependencies:

1. dependencies :将所依赖的jar直接加到项⽬中. ⼦项⽬也会继承该依赖.
2. dependencyManagement :只是声明依赖, 并不实现Jar包引⼊. 如果⼦项⽬需要⽤到相关依赖,需要显式声明. 如果⼦项⽬没有指定具体版本, 会从⽗项⽬中读取version. 如果⼦项⽬中指定了版本号,就会使⽤⼦项⽬中指定的jar版本. 此外⽗⼯程的打包⽅式应该是pom,不是jar, 这⾥需要⼿动使⽤ packaging 来声明.

SpringBoot 实现依赖jar包版本的管理, 也是这种⽅式 

依赖Jar的版本判断

    <dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>${mysql.version}</version></dependency></dependencies></dependencyManagement>

上述代码中, lombok 会被直接引⼊到当前项⽬以及⼦项⽬中, mysql-connector-j 不会实际引⼊jar,
⼦项⽬继承时必须显式声明.

Spring Cloud版本

Spring Cloud 是基于SpringBoot搭建的, 所以Spring Cloud 版本与SpringBoot版本有关 。

创建子项目-订单服务

声明项⽬依赖 和 项⽬构建插件
    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency><!--mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
创建子项目-商品服务

声明项⽬依赖 和 项⽬构建插件
    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency><!--mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
http://www.lryc.cn/news/538791.html

相关文章:

  • 使用Redis实现分布式锁,基于原本单体系统进行业务改造
  • 【MediaTek】 T750 openwrt-23.05编 cannot find dependency libexpat for libmesode
  • CHARMM-GUI EnzyDocker: 一个基于网络的用于酶中多个反应状态的蛋白质 - 配体对接的计算平台
  • c# 2025/2/17 周一
  • vite【详解】常用配置 vite.config.js / vite.config.ts
  • 最新智能优化算法: 阿尔法进化(Alpha Evolution,AE)算法求解23个经典函数测试集,MATLAB代码
  • 用于可靠工业通信的5G-TSN集成原型:基于帧复制与消除可靠性的研究
  • HaProxy源码安装(Rocky8)
  • shell脚本备份MySQL数据库和库下表
  • 23. AI-大语言模型
  • Linux /dev/null
  • Unity CommandBuffer绘制粒子系统网格显示
  • Java延时定时刷新Redis缓存
  • 智能硬件定位技术发展趋势
  • 全单模矩阵及其在分支定价算法中的应用
  • DeepSeek 的创新融合:多行业应用实践探索
  • 利用SkinMagic美化MFC应用界面
  • IMX6ULL的公板的以太网控制器(MAC)与物理层(PHY)芯片(KSZ8081RNB)连接的原理图分析(包含各引脚说明以及工作原理)
  • 采用分布式部署deepseek
  • Cloud: aws:network: limit 含有pps这种限制
  • PaddlePaddle的OCR模型转onnx-转rknn模型_笔记4
  • OpenHarmony 系统性能优化——默认关闭全局动画
  • 【Linux】Ubuntu Linux 系统——Node.js 开发环境
  • LC-搜索二维矩阵II、相交链表、反转链表、回文链表、环形链表、环形链表ll
  • 小米平板怎么和电脑共享屏幕
  • Python elasticsearch客户端连接常见问题整理
  • 目标检测IoU阈值全解析:YOLO/DETR模型中的精度-召回率博弈与工程实践指南
  • 算法——数学建模的十大常用算法
  • Electron:使用electron-react-boilerplate创建一个react + electron的项目
  • 在linux系统中安装Anaconda,并使用conda