页面剖析
url剖析
页面JS剖析
业务实现
SysResult VO对象的创立
次要目标是为了与页面进行交互
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@AllArgsConstructorpublic 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
编辑ItemService
全局异样解决机制
业务需要
代码中频繁的try-catch 会导致代码的可读性差,代码的不易保护……
定义全局异样的解决机制
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主动填充阐明
把一些公共的属性提取出进去
//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;}
代码主动填充性能
配置
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); }}