一套完整的demo模板

===============================异常模板====================================

public class ErrorCodeException extends IllegalArgumentException {

    /**
     * 错误码
     */
    private ErrorCodes errorCode;
    /**
     * 错误信息
     */
    private String errorCodeStr;

    public ErrorCodeException(String errorCode) {
        super(errorCode);
        this.errorCodeStr = errorCode;
    }

    public ErrorCodeException(ErrorCodes errorCode) {
        super(errorCode.getDesc());
        this.errorCode = errorCode;
    }

    public ErrorCodeException(ErrorCodes errorCode, String message) {
        super(errorCode.getDesc() + message);
        this.errorCode = errorCode;
    }

    public ErrorCodeException(String errorCode, String message) {
        super(message);
        this.errorCodeStr = errorCode;
    }

    public ErrorCodes getErrorCode() {
        return errorCode;
    }

    public void setErrorCode(ErrorCodes errorCode) {
        this.errorCode = errorCode;
    }

    public String getErrorCodeStr() {
        return errorCodeStr;
    }

    public void setErrorCodeStr(String errorCodeStr) {
        this.errorCodeStr = errorCodeStr;
    }

    public BaseResult getBaseResult() {
        BaseResult result = new BaseResult();
        result.setSuccess(false);
        if (getErrorCode() != null) {
            result.setErrorCode(getErrorCode().getCode());
            if (getMessage() != null) {
                result.setMessage(getMessage());
            } else {
                result.setMessage(getErrorCode().getDesc());
            }
        } else {
            result.setErrorCode(getErrorCodeStr());
            result.setMessage(getMessage());
        }
        return result;
    }

}

===================业务层模板=========================

public interface ServiceTemplate {

    /**
     * 
     * 统一服务模板 1.异常捕获, 2.日志记录管理
     * 
     * @param clazz
     *            返回的对象
     * @param action
     *            业务操作回调接口
     * @return 服务返回对象
     */
    public <T> T execute(Class<? extends BaseResult> clazz, ServiceCallback action);
}

public class ServiceTemplateImpl implements ServiceTemplate {

    /**
     * log
     */
//    private static final Logger logger = LoggerFactory.getLogger(ServiceTemplateImpl.class);

    @Override
    public <T> T execute(Class<? extends BaseResult> clazz, final ServiceCallback action) {

        BaseResult result = null;

    

        try {
            result = clazz.newInstance();
            /**
             * 参数校验
             */
            action.check();

            /**
             * 业务逻辑处理
             */
            result = action.executeService();
        } catch (InvalidParameterException e1) {
            /**
             * 参数异常捕获
             */
            ErrorCodes code = ErrorCodes.CheckError;
            String errString = String.format("%s %s", code.getDesc(), e1.getMessage());
            System.err.printf("参数异常:{},{}", code.getCode(), errString);
            result.setMessage(errString);
            result.setSuccess(false);
            result.setErrorCode(code.getCode());
        } catch (ErrorCodeException e2) {
            /**
             * 错误码异常
             */
            ErrorCodes code = e2.getErrorCode();
            System.err.printf("错误码异常:{},{}", code.getCode(), e2.getMessage());
            result.setSuccess(false);
            result.setMessage(e2.getMessage());
            result.setErrorCode(code.getCode());

        } catch (Throwable e) {

            /**
             * 未知捕获异常
             * 
             */

            ErrorCodes code = ErrorCodes.UnknownError;
            String errString = String.format("%s %s", code.getDesc(), e.getMessage());
            System.err.printf("未知捕获异常:{},{}", code.getCode(), e.getMessage());
            result.setErrorCode(code.getCode());
            result.setMessage(errString);
            result.setSuccess(false);
        }

        return (T) result;
    }

}
==================================校验===========================

public interface ServiceCallback {

    
    /**
     * 校验, 对于校验不通过,异常驱动返回
     */
    void check();

    
    /**
     * 执行业务逻辑
     * 
     * @return
     */
    BaseResult executeService();
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值