工程重构

消费者和生产者两个module中都涉及到了Payment和CommonResul两个类,按这样的规律后续会需要很多重复性的代码,面临这样的问题我们需要将多余的代码重构,使其重复使用!!

 

1.新建一个公共的module,用来封装公共的代码。

新建module是不对外暴露的,所以直接叫“cloud-api-commons”即可。不必加上端口号,方便区分。

 

 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">
    <parent>
        <artifactId>ckfuture-springcloud</artifactId>
        <groupId>com.ckfuture.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>cloud-api-commons</artifactId>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

</project>

3.建entities目录,用于放公共的Payment和CommonResule类

 

 

package com.ckfuture.springcloud.entities;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * @descrption: 支付实体类
 * @author: CKFuture
 * @since: 2021-10-09 21:35
 * @version: v1.0
 * @LastEditTime:
 * @LastEditors:
 * @copyright: hrbckfuture.com
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Payment implements Serializable {
    private Long id;
    private String serial;
}
package com.ckfuture.springcloud.entities;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class CommonResult<T>
{
    //返回代码
    private Integer code;
    //返回信息
    private String message;
    //返回数据
    private T      data;

    public CommonResult(Integer code,String message){
        this(code,message,null);
    }
}

4.cloud-api-commons利用maven打包工具类,供其他使用

选中“cloud-api-commons”,右侧选择maven。

 

 4.1 clean一下测试。

 

 4.2 install

 

 5.改造订单80和支付8001

5.1 删除80和8001的entities文件夹和下属文件。

5.2 80和8001的POM中引入自定义api通用包

 

 

<!--引入自定定义的api通用包,可以使用Payment支付实体-->
        <dependency>
            <groupId>com.ckfuture.springcloud</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>

引入后,过一会IDEA中的红色提示线消失!

 

 

 6.测试

 

 大河弯弯向东流就是这么( ఠൠఠ )ノ

posted @ 2021-10-12 08:32  创客未来  阅读(44)  评论(0编辑  收藏  举报