Spring
文章平均质量分 94
天猫精灵998
这个作者很懒,什么都没留下…
展开
-
【踩坑经历】Java Long 类型传给前端损失精度的问题
最近在做一个 SpringBoot + Vue 的项目,持久层框架用的是 MyBatis-Plus,然后遇到了一个问题,一起来看下怎么回事。这个项目就是一个文章收藏器,可以收藏一些技术文章,然后可以选择星标,以便查找这篇文章。那么点击星标的按钮,实际上就是调了后端一个接口,更新了数据库中相应字段。每一个列表的字段如下:可以看到,标记星标的字段就是 isFavorite ,没有星标的时候是 0 ,星标之后变成 1 。同时这边还有个 id 字段,这个字段是由 MyBatis-Plus 插入数据库时自动原创 2021-06-21 12:09:06 · 1528 阅读 · 3 评论 -
SpringBoot 异常处理
之前在 SpringBoot 参数校验 中已经简单介绍了异常的处理,在这篇文章中再系统总结一下。1. Controller 异常捕获在一个类上面加 @ControllerAdvice 或者 @RestControllerAdvice 注解,就是定义该类为异常处理类。如果不带任何参数,那么这个类就是全局异常处理类,例如在 SpringBoot 参数校验 中我们创建的 GlobalExceptionHandler 。有时候如果不希望捕获全局异常,可以通过给注解传递参数,指定处理的 Controller 范围原创 2021-05-30 23:22:58 · 486 阅读 · 4 评论 -
SpringBoot 封装统一响应体(二)
在 SpringBoot 封装统一响应体(一) 中介绍了使用统一结果类 ServerResponse 来封装统一响应体对象,需要用类似 ServerResponse.ok(data) 的形式进行响应。在 Spring 3.2 中,新增了 @ControllerAdvice ,是一个 Controller 增强器,可对 Controller 中被 @RequestMapping 注解的方法加一些逻辑处理,最常用的就是异常处理。这篇文章介绍一种通过 @ControllerAdvice 和基于 AOP 实现的统原创 2021-05-27 23:20:54 · 3408 阅读 · 1 评论 -
SpringBoot 日志配置
做前端开发可能对日志接触不多,但是日志对后端开发重要性毋庸置疑,它对于监控应用的运行状态、问题排查等都有非常重要的意义。这篇文章简单介绍一下 SpringBoot 日志的配置。1. 日志框架对比 slf4j、log4j、logback、log4j2slf4jslf4j是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,因为接口并不能独立使用,需要和具体的日志框架实现配合使用(如log4j、logback)log4jog4j是apache实现的一个开源日志组件。通过使用log4j原创 2021-05-22 23:10:47 · 307 阅读 · 1 评论 -
SpringBoot 封装统一响应体(一)
在上一篇 SpringBoot 参数校验 中我们对参数校验添加了异常处理,但是还是有不规范的地方,没有用统一响应体进行返回,在这篇文章中介绍如何封装统一响应体。关于统一响应体的封装,没有一个标准答案,我在各种技术社区看了一遍,汇总了一个复用性比较好的方案。1. 添加结果类枚举在项目目录下面建一个 responseEntity 的 package,然后在里面建一个 ResultEnum 枚举类,添加如下代码:这边介绍一下枚举类的用法。枚举类的作用实际上就是定义常量,如果不使用枚举类,通常采用静态常量原创 2021-05-22 19:45:16 · 2457 阅读 · 1 评论 -
SpringBoot 参数校验
在上一篇 MyBatis-plus 初体验 中已经简单实现了 MyBatis-Plus 数据库查询。我们知道 CURD 离不开前后端的数据交互,因此参数校验是必不可少的。这篇主要讲一下 SpringBoot 参数校验。在 Web 开发中经常需要对前端传过来的参数进行校验,例如格式校验、非空校验等,基本上每个接口都需要进行校验。如果使用常规的 IF ELSE 进行校验,随着参数越来越多,校验逻辑的冗余度也越来越高,导致维护性变差。在 Java 中定义了一套基于注解的数据校验规范 Bean Validatio原创 2021-05-21 17:30:35 · 848 阅读 · 1 评论 -
MyBatis-plus 初体验
众所周知,本人非常喜欢折腾。作为一个前端,却热衷于研究后端框架,用过 ThinkPHP、Python Flask、egg.js 写过 CURD,最近还不甘心,想用 SpringBoot 来写 CURD。想要写 CURD ,就离不开持久层框架 (ORM) 。搞 Java 后端开发的都知道,Java 技术栈曾经广泛使用的持久层框架是 Hibernate ,缺点是使用非常复杂,然后最近比较火的是 MyBatis ,虽然简单了不少,但这玩意是通过 xml 去拼接 sql 语句,因此需要手写大量的 xml 文件。这原创 2021-05-16 12:59:12 · 234 阅读 · 1 评论 -
Spring 中的 @Override 和 @Autowired
看别人写的代码,经常会用到 @Override 和 @Autowired 这两个注解。这边总结一下这两个注解的作用。1. Override首先,@Override 注解是伪代码,表示子类重写父类的方法。这个注解不写也是可以的,但是写了有如下好处:1. 可以当注释用,方便阅读(注解很重要的一个作用就是注释);2. 编译器和 IDE 可以验证 @Override 下面的方法名是否是父类中所有的,如果没有的话就会报错。如果没有加 @Override ,而子类中的方法名又写错了,这个时候编译器是可以编译通过原创 2021-04-29 18:36:41 · 2215 阅读 · 1 评论