使用方式:
maven ,配置settings后,引入到項目的pom中:
<dependency>
<groupId>com.zl.common-core</groupId>
<artifactId>common-core</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
下一步計劃:
會繼續(xù)封裝可復用的組件、輪子代碼
1、規(guī)范使用CommonCheck,提高代碼質(zhì)量(邏輯更清晰、代碼更簡單、好維護擴展)
類路徑:com.zl.common.service.CommonService
目的:
- 規(guī)范check處理,封裝CommonCheck(攔截校驗client request,業(yè)務(wù)數(shù)據(jù)校驗,不合法直接throw)
- 規(guī)范throw處理,封裝GlobalExceptionHandel(錯誤類型,MDC處理,response封裝等)
- 規(guī)范ErrorCode錯誤碼,業(yè)務(wù)按需定義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、規(guī)范使用模版方法(如:ResultTemplate),提高代碼質(zhì)量(按業(yè)務(wù)定制業(yè)務(wù)執(zhí)行邏輯流程,保障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);
}
}
目的:
- 規(guī)范service層執(zhí)行流程,封裝Template(覆蓋:有返回值、無返回值、強弱校驗、鏈式處理等場景)
- 規(guī)范check處理,new Template時,自動帶出checkParams(校驗:非空、合法性、長度等)
- 規(guī)范execute處理,業(yè)務(wù)邏輯代碼實現(xiàn),自動包裝(覆蓋:返回值封裝格式等)
使用舉例:
@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);
}