页面分析
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);
}
}
商品删除操作
注意:把数组转化成集合
@Override
public void deleteItem(Long[] ids) {
//把数组转化成集合
List<Long>longList= Arrays.asList(ids);
itemMapper.deleteBatchIds(longList);
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。