url分析
頁面JS分析
java
主要目的是爲了與頁面進行交互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); } }
代碼中頻繁的try-catch 會致使代碼的可讀性差,代碼的不易維護……
ajax
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(); } }
把一些公共的屬性提取出出來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); } }