编码小知识点-收集

1SpringBoot注解相关

1.1@PathVariable注解使用

    /**
     * /@PathVariable是spring3.0的一个新功能:接收请求路径中占位符的值
     * GetMapping中写了相关字符串、在fndPage()的括号中也必须写-用@PathVariable标记
     * 请求地址:http://localhost:9011/brand/search/1/2
     * @param page
     * @param size
     * @return
     */
    @GetMapping("/search/{page}/{size}")
    public Result findPage(@PathVariable("page")int page,@PathVariable("size") int size){
        Page<Brand> pageInfo = brandService.findPage(page, size);
        PageResult pageResult = new PageResult(pageInfo.getTotal(),pageInfo.getResult());
        return new Result(true,StatusCode.OK,"查询成功",pageResult);
    }

2异常

2.1统一异常处理

项目中并不是每一处代码都需要trycatch包裹,而有防止代码出现意料之外的yi'chang



import com.alibaba.fastjson.JSON;
import com.changgou.common.pojo.Result;
import com.changgou.common.pojo.StatusCode;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 统一异常处理
 *
 * @ControllerAdvice 声明该类是一个增强类
 */
@Slf4j
@ControllerAdvice
public class BaseExceptionHandler {

    /**
     * 统一处理 异常
     *
     * @param e
     * @return
     * @ExceptionHandler(value = Exception.class)  针对那些异常做统一处理,Exception.class说明针对所以异常做处理
     * @ResponseBody 返回前端格式
     */
    @ExceptionHandler(value = Exception.class)
    @ResponseBody
    public Result error(Exception e) {
        log.error("统一异常处理:json:{}", JSON.toJSONString(e));
        return new Result(false, StatusCode.ERROR, "当前系统繁忙,请您稍后重试");
    }
}

3其他

3.1SpringBoot连接数据库后面的代码

?characterEncoding=utf8&serverTimezone=Asia/Shanghai

#例如
jdbc:mysql://127.0.0.1:3306/tsdb?characterEncoding=utf8&serverTimezone=Asia/Shanghai

3.2IDEA如何自动生成 serialVersionUID 的设置

serialVersionUID适用于java序列化机制。简单来说,JAVA序列化的机制是通过 判断类的serialVersionUID来验证的版本一致的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID于本地相应实体类的serialVersionUID进行比较。如果相同说明是一致的,可以进行反序列化,否则会出现反序列化版本一致的异常,即是InvalidCastException。

具体序列化的过程是这样的:序列化操作时会把系统当前类的serialVersionUID写入到序列化文件中,当反序列化时系统会自动检测文件中的serialVersionUID,判断它是否与当前类中的serialVersionUID一致。如果一致说明序列化文件的版本与当前类的版本是一样的,可以反序列化成功,否则就失败;

serialVersionUID有两种显示的生成方式:
一是默认的1L,比如:private static final long serialVersionUID = 1L;        

二是根据包名,类名,继承关系,非私有的方法和属性,以及参数,返回值等诸多因子计算得出的,极度复杂生成的一个64位的哈希字段。基本上计算出来的这个值是唯一的。比如:private static final long  serialVersionUID = xxxxL;
注意:显示声明serialVersionUID可以避免对象不一致

关于怎么生成,参考:

https://blog.csdn.net/hetongun/article/details/81904393

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值