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); } }