Java validation-api 2.0 报错:No validator could be found for constraint 'javax.validation.constraints.NotBlank'

项目对输入参数验证使用了 validation-api:2.0 组件,使用比较方便,只需要在入参的 VO 或者 DTO 对象前加一个 @Validated 既开启了参数验证。之后在 VO 对象属性前加上 @NotBlank(message = "xxx不能为空"),就可以实现数据的校验,并返回错误内容。当然,组件返回的数据需要通过全局异常处理类处理一下(不然返回结构较为复杂):

- 阅读全文 -

逻辑或运算和逻辑与运算业务实操分析

在正常的业务维护中,最怕维护别人写的代码,尤其是没有任何注释的代码。而项目文档在项目搭建的时候不重要,但后面如果有人接手,既没有项目文档,注释也懒得写,那么一些较为复杂的业务逻辑会成为噩梦。半天梳理业务逻辑,尤其对着仅有的注释部分去尝试推测、理解代码逻辑。这里就涉及到与和或的逻辑预算,逻辑或和逻辑与运算都不是简单的多条件交集、并集。逻辑或在一个或者多个条件中有一个为 true,结果就是 true;

- 阅读全文 -

Mybatis 批量更新报错:Parameter 'orderList' not found. Available parameters are [collection, list]

项目中有个任务要处理数据库中十几万的数据,根据设置的评分项对订单进行打分,并更新打分和命中的评分项。参考之前代码中的写法,创建递归线程池,将任务拆分成不大于 700 条记录的子任务,然后在子任务中遍历数据并处理。因为循环插入数据库是比较不推荐的做法,所以在遍历数据中,创建需要更新的数据对象并填充,然后添加到更新列表中,在遍历结束后批量更新。前面遇到一些 null 空对象的错误,都一一修复了,主要就

- 阅读全文 -

免费搞定 “Intellij IDEA”(二)

上次 免费搞定 “Intellij IDEA” 里介绍的是通过添加教育版插件实现免费使用 Intellij IDEA 的目的。也不知道哪根经搭错了,个人还是在使用付费版本的(有时候会有莫名其妙又很幼稚的坚持,比如网购了某个东西如果是因为个人原因导致不想用或者用不了了,基本不愿意求退货、退款)。今年续费完之后,突然发现授权许可证下面有一行字:“您有此版本的永久回退许可证。”。没太理解,百度了一下,原

- 阅读全文 -

Spring Security 跨域配置

新建的 H5 页面项目在测试站出现跨域报错。但访问正式站的时候,竟然没有报错。H5 页面与后台的前端(前后端分离)请求的是同一个后端接口地址,只不过是在用户授权登录上使用了独立的验证(抄了若依的前后端分离版本的登录验证和 redisService 存储的 token 服务)。相当于是在现有项目上开了一个小口,允许不通过当前的 userDetailSerice 认证,直接访问。以下是继承了 Reso

- 阅读全文 -

Spring Boot 2.7.18 与 Spring Cloud 接入连接 Nacos

Spring Boot 与 Spring Cloud 接入 Nacos,可以参考官方教程:Nacos 融合 Spring Boot,成为注册配置中心,Nacos 融合 Spring Cloud,成为注册配置中心。这里主要记录一下接入时遇到的一些问题。版本兼容Spring Boot 的版本兼容有说明:注意:版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本,版本 0.1

- 阅读全文 -

Nacos 2.3.1 安装使用初体验

前言认识 Nacos 是从了解 Spring Cloud 微服务框架开始的,项目使用了若依的微服务版本,配置文件名称不是 application.yml 而变成了 bootstrap[-dev].yml。dev 分支代码设置了 dev 配置文件,dev 配置文件中也只写了 nacos 的 config 与 discovery 配置,分别给出了 server-addr 服务地址,然后就什么都没有了。

- 阅读全文 -

xxl-job定时任务不执行

业务端反馈本来应该定时任务处理的业务没有执行。查看了一下任务调度中心的任务,找到调度日志,发现当天的几次执行,调度结果显示为成功,但执行时间和执行结果都是空白的。点击查看执行日志,发现只有两行 [Rolling Log Finish],正常执行是有开始和结束的基本日志结构的,但此时什么都没有。百度了一下,有说是因为任务执行阻塞的,可以通过以下指令查看阻塞的状况:map -histo 进程ID |

- 阅读全文 -

Mybatis order by id #{order} 变量传入不进去

Mybatis 查询列表,在需要对 order by 部分进行动态设置的时候,查询报错了:Caused by: net.sf.jsqlparser.JSQLParserException: null at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatements(CCJSqlParserUtil.java:154) at c

- 阅读全文 -

Mybatis 用 if 条件判断 `test="num != null and num != '' "` 当 num 为 0 时判断为 fasle

在做一个删除操作时,需要更新关联表的统计记录数,当所有记录都被删除,即记录数 num 为 0 时,报错 SQLSyntaxErrorException,后面的的 sql 显示为 update table_name where id = 1,缺少了 num 字段设置。调试统计 num = 0 参数正常传递进入到 Mapper。查看执行更新操作的 sql:update table_name <t

- 阅读全文 -