项目的工具包,以功能分包,功能之间尽量减少相互依赖,每个功能作为最小单元供服务依赖。
Try to reduce mutual dependence between functions and functions. Each function is used as the minimum unit for service dependencies.
项目地址: GitHub https://github.com/tf2jaguar/microcosm
参考文尾的 各模块使用建议
讲在前边spring-boot
类的项目的一些增强,如果你的项目不是用spring-boot
开发的,那么它对你的用处可能没有那么大参考: guideline
父版本添加版本控制最新版本(参考本文的发版历史) io.github.tf2jaguar.micro micro-logging ${revision} io.github.tf2jaguar.micro micro-apollo ${revision} io.github.tf2jaguar.micro micro-qconf ${revision} io.github.tf2jaguar.micro micro-distribute ${revision} io.github.tf2jaguar.micro micro-core ${revision} io.github.tf2jaguar.micro micro-codec ${revision} io.github.tf2jaguar.micro micro-except ${revision} io.github.tf2jaguar.micro micro-micro-mybatis-plus ${revision}
api模块增加依赖这里主要增加一些核心类库,包括但不限于出入参数封装 InputMessage, OutputMessage,
服务异常 ServerException,
业务异常 BusinessException,
核心异常枚举 ErrorEnums
io.github.tf2jaguar.micro micro-core
自定义服务异常枚举你可以通过实现ExceptionEnums
接口,来定义自己的服务异常枚举,用来适配服务异常、业务异常。两种异常在统一异常捕获模块,会产生不一样的效果哦
public enum GmmpErrorCodes implements ExceptionEnums {// 异常
INTERNAL_EXCEPT(10000, "系统内部异常"),
INVALID_SIGN(10001, "请求加密协议错误"),
INVALID_IP(10002, "请求IP地址异常"),
INVALID_DATA(10003, "数据错误"),
INVALID_PARAMS(10004, "参数错误"),
INVALID_CITY_ID(10005, "无效的城市编号"),
INVALID_ENTERPRISE_ID(10006, "无效的企业编号"),
// …… 省略部分
;
private int code;
private String message;
public static final int MODULE = 200;
GmmpErrorCodes(int code, String message) {this.code = code;
this.message = message;
}
@Override
public int code() {return this.code;
}
@Override
public String message() {return this.message;
}
}
common模块增加依赖这个模块主要是通用能力的封装,包括但不限于调用第三方服务、通用工具类处理
此处增加 出入参数封装依赖(qconf适配的依赖)
配置模块依赖io.github.tf2jaguar.micro micro-codec
如果你的服务使用qconf
而不是nacos
进行服务发现,那么你还需要添加以下依赖
io.github.tf2jaguar.micro micro-qconf
main模块添加依赖这个模块是整个服务的启动模块,是springboot
项目的启动类所在的模块
这里添加日志处理、apollo配置中心、统一异常捕获的依赖
配置模块依赖io.github.tf2jaguar.micro micro-logging io.github.tf2jaguar.micro micro-apollo io.github.tf2jaguar.micro micro-except
发版日历最新发版及调整参考: version
最新版本1.1.3.RELEASE
更新日历 1.1.3.RELEASE发布日期:2022-06-16
发布日期:2021-07-02
发布日期:2021-07-02
发布日期:2021-07-01
ExceptionEnums
如内置的常用异常状态枚举的实现方式public enum ErrorEnums implements ExceptionEnums
;封装了简单的分页请求入参和返回参数,封装了接口交互的出入参数格式类(通过micro-codec
模块完成出入参数自动封装、解封装)feign
调用的出入参数驼峰转换;实现了对http
调用出入参数驼峰转换,入参数 params 封装,出参数code、data、message
封装;实现了对swagger
展示中入参数、出参数封装ServerException
,打印error日志,返回接口错误 ;拦截业务异常BusinessException
,不打印error日志,只返回接口错误 ;拦截参数绑定异常BindException
,打印error日志,返回接口错误 ;拦截方法参数异常MethodArgumentNotValidException
,打印error日志,返回接口错误 ;拦截全局异常Exception
,打印error日志,返回接口错误发布日期:2021-05-13
发布日期:2021-05-13
http请求
的出入参数记录,针对每个request
的api日志
用唯一的session_id
进行区分;使用logback记录日志、记录all_log、error_log、api_log、access_log
的日志并按照天做切分apollo
配置变更自动刷新;实现了对apollo
日志级别调整后自动刷新qconf
中获取服务器列表,供给ribbon
远程调用micro-logging
模块的 pom 依赖micro.logging.api.ignore=
忽略日志打印http请求
的出入参数记录,针对每个request
在日志中有唯一的session_id
进行区分micro-apollo
模块的 pom 依赖apollo
配置变更自动刷新apollo
日志级别调整后自动刷新feign
调用的模块中添加micro-qconf
模块的 pom 依赖qconf
中获取服务器列表,供给ribbon
远程调用micro-distribute
模块的 pom 依赖micro.distribute.machine-list=
指定当前机器集群(单机时无需配置,默认1),用来计算分布式id生成的机器id;micro.distribute.data-center-id=
指定当前数据中心id编号(单机时无需配置,默认1),用来计算分布式id生成的数据中心idmicro-core
模块的 pom 依赖ExceptionEnums
如内置的常用异常状态枚举的实现方式public enum ErrorEnums implements ExceptionEnums
micro-codec
模块完成出入参数自动封装、解封装)micro-codec
模块的 pom 依赖feign
调用的出入参数驼峰转换http
调用出入参数驼峰转换,入参数params
封装,出参数code、data、message
封装swagger
展示中入参数、出参数封装micro-except
模块的 pom 依赖ServerException
打印error日志,返回接口错误BusinessException
不打印error日志,只返回接口错误BindException
打印error日志,返回接口错误MethodArgumentNotValidException
打印error日志,返回接口错误Exception
打印error日志,返回接口错误你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧