Java随笔
茂多多
耗尽你要争的气,流连你尺躯之地。
展开
-
记一次代码不规范导致的低级bug
今天发现一个停留了比较久的低级bug,根本原因是忽略了基本类型变量有默认值。接口的入参BO中有个flag变量:public class queryBo { ... /** * 筛选条件 */ private boolean flag;}这个变量在mapper中有用到:where 1 = 1<if test="queryBo.flag == true"> and table.filed = 1 <原创 2022-03-09 09:44:50 · 150 阅读 · 0 评论 -
2021-08-11 后端获取userId用于业务的小tips
在项目中可能会遇到需要权限验证的需求,这个时候往往是后端获取当前登录用户ID而非前端传过来,所以在接口编写的过程中我们可能会在Service层业务逻辑处理的时候来获取,这个习惯是不建议的,因为其它服务可能需要来调用这个接口,这个时候可能导致获取不了这个值出现异常。...原创 2021-08-11 11:37:00 · 435 阅读 · 0 评论 -
BO类中对于金额字段的验证注解@Digits
@Digits(integer=,fraction=) 验证字符串是否是符合指定格式的数字interger指定整数精度,fraction指定小数精度。例如:@Digits(integer = 10, fraction = 2, message = "moneyAmount")private BigDecimal moneyAmount;原创 2021-08-11 11:25:17 · 8096 阅读 · 0 评论 -
mysql中关于AUTO_INCREMENT的使用
今天执行建表SQL的时候报错了:java.sql.SQLSyntaxErrorException: Incorrect table definition; there can be only one auto column and it must be defined as a key原来一个表中只能有一个自增列,且该列必须是一个KEY,建议将其添加为一个唯一键。...原创 2021-08-09 17:37:58 · 96 阅读 · 0 评论 -
Validation框架的学习
如果项目中涉及到RPC的建议考虑在Service层上加验证注解,而且是加在接口层上的,如果不涉及可以加在Controller层上,但是个别Service层方法需要考虑到其它地方调用。框架提供的一些基础注解都是不包含null的验证的,有需要必须单独加@NotNull。分组验证在项目中也会使用的比较多。https://www.bilibili.com/video/BV1UE411t7BZ?from=search&seid=12576185322147692325 validation框架的常用原创 2021-08-04 15:01:08 · 92 阅读 · 0 评论 -
Lombok注解-@SneakyThrows
突然想起之前看的一篇文章,涉及到异常处理的一个注解,却发现已经没有记忆了,所以赶紧找到原文记录一下。编译时异常会强制要求我们来进行处理,要么try-catch,要么直接往外抛,设计的最初目的是为了提醒开发人员注意这些异常,比如IOException。但是有些异常实在是处理不了,只有往外抛,但是这好像不太合理,渐渐的程序猿想到了直接封装一下,让编译器认为它是一个运行时异常,并不需要我现在显示处理:try{ }catch(Exception e){ throw new RuntimeException转载 2021-07-26 11:28:21 · 185 阅读 · 0 评论 -
JVM的fast throw机制
前言今天在学习的时候看到Mentor有在提醒大家不要在代码中习惯性抛出NullPointerException,因为有时候不好查询异常来源,我:奥特曼扣了扣脑袋…Fast Throw在他们的聊天中我看到了fast throw机制,于是求助了度娘。。。HotSpot VM有个许多人觉得“匪夷所思”的优化,叫做fast throw:有些特定的隐式异常类型(NullPointerException、ArrayIndexOutOfBoundsException、ClassCastException、Arit原创 2021-07-22 15:03:14 · 573 阅读 · 0 评论