关于spring:商品的增加操作全局异常处理

页面剖析

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

    }
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理