实现maven组件系列,封装:全局异常、错误码校验、业务层模版实
2021-12-28 本文已影响0人
辛夷z
使用方式:
maven ,配置settings后,引入到项目的pom中:
<dependency>
<groupId>com.zl.common-core</groupId>
<artifactId>common-core</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
下一步计划:
会继续封装可复用的组件、轮子代码
1、规范使用CommonCheck,提高代码质量(逻辑更清晰、代码更简单、好维护扩展)
类路径:com.zl.common.service.CommonService
目的:
- 规范check处理,封装CommonCheck(拦截校验client request,业务数据校验,不合法直接throw)
- 规范throw处理,封装GlobalExceptionHandel(错误类型,MDC处理,response封装等)
- 规范ErrorCode错误码,业务按需定义code和描述(参照 http code码,默认throw ServiceException)
使用举例:
@Override
public void checkParams(Test test) {
CommonCheck.paramNotEmpty(test, "test");
CommonCheck.paramNotEmpty(test.getName(), "name");
CommonCheck.paramLengthUnValid(test.getName(), "name", Constants.NAME_MIN_LENGTH,
Constants.NAME_MAX_LENGTH);
}
2、规范使用模版方法(如:ResultTemplate),提高代码质量(按业务定制业务执行逻辑流程,保障check、execute,return能覆盖到)
类路径:com.zl.common.template.*
举例:ResultTemplate
package com.zl.common.template;
import com.zl.common.result.Result;
import com.zl.common.result.ResultGenerator;
public abstract class ResultTemplate<T> {
public ResultTemplate() {
}
public abstract void checkParams(T t);
public abstract Object execute(T t);
public Result result(Object t) {
return ResultGenerator.genSuccessResult(t);
}
public final Result process(T t) {
this.checkParams(t);
Object t1 = this.execute(t);
return this.result(t1);
}
}
目的:
- 规范service层执行流程,封装Template(覆盖:有返回值、无返回值、强弱校验、链式处理等场景)
- 规范check处理,new Template时,自动带出checkParams(校验:非空、合法性、长度等)
- 规范execute处理,业务逻辑代码实现,自动包装(覆盖:返回值封装格式等)
使用举例:
@Override
public Result insertModel(Test test) {
return new ResultTemplate<Test>() {
@Override
public void checkParams(Test test) {
CommonCheck.paramNotEmpty(test, "test");
CommonCheck.paramNotEmpty(test.getName(), "name");
CommonCheck.paramLengthUnValid(test.getName(), "name", Constants.NAME_MIN_LENGTH,
Constants.NAME_MAX_LENGTH);
}
@Override
public Object execute(Test test) {
return save(test);
}
}.process(test);
}