主数据管理系统(3)- 微服务共享的核心模块
主数据管理系统(3)- 微服务共享的核心模块
作者:小黄小陈(公众号同名)
在微服务架构中,common-core(或称为common、core-common)是所有微服务共享的核心模块,主要存放通用工具类、基础配置、公共模型、全局异常处理等跨服务复用的代码,目的是减少重复开发、统一系统规范。但是,common-core中没有启动类,可以将它理解成一个jar包文件或pom依赖,供其他微服务引入使用。
1、建立核心模块的方法,同样的选中根目录,右键,选择new→module
2、在New Module界面中,名字输入为common-core,然后直接create即可
3、创建完后,会生成一个common-core的微服务,同时根目录下的pom.xml中会新增一个标签
4、效仿之前的做法,将common-core下的启动类删除,同时修改路径为com.example.common
5、现在在common-core中建立几个包:enums(存放枚举类)、utils(存放一些工具类)、exception(存放一些异常代码和异常类)、config(存放配置类)、aspect(存放切面类)、model(存放)、dto(存放数据传输对象)、model(实体类),暂时先创建这些。
6、创建完包之后,我们定义一个枚举类和异常类,后续根据情况再往里面增加
①首先创建一个全局异常类
package com.example.common.exception;
/**
* 全局异常类 *
* @author ryan
* @since 2025年09月19日
*/
public class BaseException extends Exception { /* 序列化的字段 */ private static final long serialVersionUID = 1L;
/* 异常码 */
private Integer code;
/* 异常信息 */
private String errorMessage;
public BaseException() { }
public BaseException(Integer code, String errorMessage) {
this.code = code;
this.errorMessage = errorMessage;
}
/**
* 获取
* @return code
*/
public Integer getCode() {
return code;
}
/**
* 设置
* @param code
*/
public void setCode(Integer code) {
this.code = code;
}
/**
* 获取
* @return errorMessage
*/
public String getErrorMessage() {
return errorMessage;
}
/**
* 设置
* @param errorMessage
*/
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
public String toString() {
StringBuilder sb = new StringBuilder();
if(this.code != null) {
sb.append("errorCode:");
sb.append(this.code);
}
if(this.errorMessage != null) {
if(sb.length() > 0) {
sb.append(", ");
}
sb.append("errorMessage:");
sb.append(this.errorMessage);
}
return sb.toString();
}
}
②定义一个异常code类
package com.example.common.exception;
/**
* 常量,异常的code的定义
*
* @author ryan
* @since 2025年09月19日
*/
public class ExceptionCode extends Throwable{
/* 基本类的异常码 用1xx或者2xx */
/* 业务类的异常码 用1000xx或者2000xx */
/**
* 请求成功
*/
private static final long SUCCESS = 200;
/**
* 参数不为空
*/
private static final Integer PARAM_NOT_NULL = 400;
}
7、创建一个响应dto对象,ApiResponse,这个对象用于内部之间或者外部之间调用返回结果用。
package com.example.common.dto;
/** * 返回结果类
*
* @author ryan
* @since 2025年09月19日
*/
public class ApiResponse<T> {
//<T> 表示泛型参数
/* 响应码 */
private Integer code;
/* 请求结果 */
private String message;
/* 返回json信息 */
private T data;
public ApiResponse() { }
public ApiResponse(Integer code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
/**
* 获取
* @return code
*/
public Integer getCode() {
return code;
}
/**
* 设置
* @param code
*/
public void setCode(Integer code) {
this.code = code;
}
/**
* 获取
* @return message
*/
public String getMessage() {
return message;
}
/**
* 设置
* @param message
*/
public void setMessage(String message) {
this.message = message;
}
/**
* 获取
* @return data
*/
public T getData() {
return data;
}
/**
* 设置
* @param data
*/
public void setData(T data) {
this.data = data;
}
public String toString() {
return "ApiResponse{code = " + code + ", message = " + message + ", data = " + data + "}";
}
}
8、至于这个核心模块怎么被其他微服务引用呢
这个很简单,直接在根目录下的pom文件中,按照依赖引入的方式直接引入即可
<dependency>
<groupId>com.example.common</groupId>
<artifactId>common-core</artifactId>
<version>1.0.0</version>
</dependency>
其他微服务怎么访问呢
同样引入依赖
<dependency>
<groupId>com.example</groupId>
<artifactId>common-core</artifactId>
<version>1.0-SNAPSHOT</version> <!-- 与父项目版本一致 -->
</dependency>
9、这样配置完后,在其他微服务中可以注入注入依赖,然后直接使用了,举个例子,在person-service中随便创建一个类,然后引用核心模块的内容即可
10、今天就讲解一下核心模块的一些简单的知识,为后面做一下铺垫,接下来后面我们要开始完善person-service中的一些简单的内容
更多推荐


所有评论(0)