页面剖析

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