Java研学-SpringCloud(二)
一 cloud-play搭建 – 最大父工程
1 创建项目
利用dependencyManagement
对三大框架spring boot
,spring cloud
,spring cloud aliaba
进行版本锁定,便于版本更迭
2 父工程 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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.4</version><relativePath/></parent><!--父工程传递依赖 管理版本 不写代码--><packaging>pom</packaging><groupId>cn.tj</groupId><artifactId>cloud-play</artifactId><version>0.0.1-SNAPSHOT</version><!-- 集中管理版本号和编译配置 --><properties><!-- 显式配置 虽然Spring Boot 3.x → 默认使用 Java 17--><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring-cloud.version>2023.0.3</spring-cloud.version><spring-cloud-alibaba.version>2023.0.3.2</spring-cloud-alibaba.version></properties><!-- 依赖管理(关键部分) --><dependencyManagement><dependencies><!-- Spring Cloud BOM --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!-- Spring Cloud Alibaba BOM --><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><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
二 聚合模块创建 – services
1 新建cloud-play的子模块
该模块用来管理所有的微服务,每个微服务都是它的子模块,可统一导入公共依赖,利用Maven的父子继承规则,实现一处导入所有的微服务项目都可以使用,便于每个微服务都需要使用的注册中心,配置中心,远程调用等功能。
2 聚合模块 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><parent><groupId>cn.tj</groupId><artifactId>cloud-play</artifactId><version>0.0.1-SNAPSHOT</version></parent><packaging>pom</packaging><artifactId>services</artifactId><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties></project>
三 子模块微服务创建
1 子模块商品微服务 – service-product
2 子模块订单微服务 – service-order
3 Maven结构
四 导入公共依赖 – services
1 导入依赖
<?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><parent><groupId>cn.tj</groupId><artifactId>cloud-play</artifactId><version>0.0.1-SNAPSHOT</version></parent><packaging>pom</packaging><modules><module>service-product</module><module>service-order</module></modules><artifactId>services</artifactId><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!-- 导入公共依赖 --><dependencies><!-- 服务发现 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- 远程调用 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency></dependencies>
</project>