共计 2303 个字符,预计需要花费 6 分钟才能阅读完成。
页面剖析
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
@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
编辑 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);
}
}
正文完