一、构建项目环境
(1)构思引导图
(2)创建项目目录结构图(预览)
二、创建父级项目
各个子模块的依赖统一管理在父级pom中
注意点:
(1)打包方式为pom pom
(2)选择springInitial方式创建,继承spring可以统一部分spring相关依赖jar包的版本,以防后续各种jar包不兼容导致出错
<!--spring boot版本-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
(3)父级依赖如下
<?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>
<packaging>pom</packaging>
<!--spring boot版本-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- 子模块-->
<modules>
<module>cloud-commons-entities</module>
<module>eureka-cloud-consumer-order80</module>
<module>eureka-cloud-provider-payment8001</module>
<module>eureka-cloud-provider-payment8002</module>
<module>eurekaServerRegister7001</module>
<module>eurekaServerRegister7002</module>
<!-- <module>zookeeper-cloud-consumer-order80</module>-->
<!-- <module>zookeeper-cloud-provider-payment8003</module>-->
<!-- <module>zookeeper-cloud-provider-payment8004</module>-->
</modules>
<groupId>com.springCloudStudy</groupId>
<artifactId>SpringCloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>SpringCloud</name>
<description>SpringCloud</description>
<!-- 版本号统一管理-->
<properties>
<!-- 编码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- java编译器版本-->
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<spring-clound-alibaba.version>2.2.7.RELEASE</spring-clound-alibaba.version>
<spring-clound.version>2021.0.0</spring-clound.version>
<mybatis.version>2.2.2</mybatis.version>
<mybatis-plus.version>3.5.1</mybatis-plus.version>
<mysql.version>8.0.28</mysql.version>
<druid-spring.version>1.2.8</druid-spring.version>
<java.version>1.8</java.version>
<hutool.version>5.7.20</hutool.version>
<eureka-server.version>3.1.0</eureka-server.version>
<eureka-client.version>3.1.0</eureka-client.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- 数据源依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 这个依赖用到时再导入,因为导入之后springboot初始化会自动初始化数据库的东西导致报错-->
<!-- <dependency>-->
<!-- <groupId>com.alibaba</groupId>-->
<!-- <artifactId>druid-spring-boot-starter</artifactId>-->
<!-- <version>${druid-spring.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>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 工具依赖,后续学习可能会用到-->
<dependency>
<!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all -->
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Eureka组件相关依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
<version>${eureka-server.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>${eureka-client.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring cloud依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-clound.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-clound-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
三、创建公共模块(存放其它模块都用到的实体类或jar包)
(1)父级项目目录右键.
new module–>选择maven–>命名为cloud-commons-entities
(2)目录结构
(3)pom.xml文件
<?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">
<parent>
<artifactId>SpringCloud</artifactId>
<groupId>com.springCloudStudy</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cloud-commons-entities</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!-- 牛逼Lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- 工具包-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.20</version>
</dependency>
</dependencies>
</project>
(4)Payment.java
```javascript
package com.commons.interfaces.entities;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @PROJECT_NAME: SpringCloud_Study
* @NAME: Payment8001
* @Author: lidongming
* @DATE: 2022/2/6
* @Desc:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Payment implements Serializable {
private Long id;
private String serial;
public Payment(String serial){
this.serial = serial;
}
}
(5)ResponseData.java
package com.commons.interfaces.utils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @PROJECT_NAME: SpringCloud_Study
* @NAME: ResponseData
* @Author: lidongming
* @DATE: 2022/2/6
* @Desc:
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ResponseData<E> {
//状态码
private Integer code;
//信息
private String message;
//数据
private Object data;
public ResponseData(Integer code, String message){
this.code = code;
this.message = message;
}
}
(6)把这个模块安装到maven库里,供其它模块调用