工程重构
消费者和生产者两个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.测试
大河弯弯向东流就是这么( ఠൠఠ )ノ
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!