商品的增長操做-全局異常處理

頁面分析

url分析
image.png
頁面JS分析
image.pngjava

業務實現

SysResult VO對象的建立

主要目的是爲了與頁面進行交互web

package com.jt.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

//SysResult 主要的目的是爲了與頁面進行交互.  ajax/json
@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class SysResult {

    private Integer status;  //200成功   201 失敗
    private String  msg;     //服務器提示信息   成功  失敗
    private Object  data;    //服務器返回值數據.

    //能夠利用static的靜態方法 將數據動態返回
    public static SysResult fail(){

        return new SysResult(201, "業務執行失敗", null);
    }

    /**
     *  1.只須要返回狀態碼信息   200
     *  2.須要返狀態及業務數據   200/data
     *  3.返回提示信息/data業務數據
     * @return
     */
    public static SysResult success(){

        return new SysResult(200, "業務執行成功!", null);
    }
    //String json = "{key:value}"
    public static SysResult success(Object data){

        return new SysResult(200, "業務執行成功!", data);
    }

    //只想返回提示信息
    public static SysResult success(String msg,Object data){

        return new SysResult(200, msg, data);
    }
}

編輯ItemController

image.png

編輯ItemService

image.png

全局異常處理機制

業務需求

代碼中頻繁的try-catch 會致使代碼的可讀性差,代碼的不易維護……
image.pngajax

定義全局異常的處理機制

import com.cn.jt.vo.SysResult;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
 * @program: jt
 * @description:定義全局異常處理類 AOP-異常通知
 * @author: zhu Xia
 * @create: 2020-09-28 15:34
 **///@ControllerAdvice//攔截Controller層
//@ResponseBody
@RestControllerAdvice//兩個註解二合一
public class SystemAop {
 /**
 * 定義全局異常的方法 當遇到了什麼異常時,程序開始執行
 * 一旦發生異常,則應該輸出異常信息,以後返回錯誤數據便可
 */
 @ExceptionHandler({RuntimeException.class})
 public Object systemAop(Exception e){
 e.printStackTrace();
 return SysResult.fail();
 }
}

屬性自動填充功能

MP自動填充說明

把一些公共的屬性提取出出來spring

//pojo類,完成2個任務,2個日期,實現序列化
@Data
@Accessors(chain=true)
public class BasePojo implements Serializable{
    @TableField(fill = FieldFill.INSERT) //入庫時自動添加
    private Date created;
    @TableField(fill = FieldFill.INSERT_UPDATE) //入庫/更新操做自動添加
    private Date updated;

}

代碼自動填充功能

配置apache

package com.jt.config;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

@Component  //將對象交給spring容器管理
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        Date date = new Date(); //保證時間一致
        this.setInsertFieldValByName("created", date,metaObject);
        this.setInsertFieldValByName("updated", date,metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {

        this.setUpdateFieldValByName("updated", new Date(), metaObject);

    }
}
相關文章
相關標籤/搜索