首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自定义注解判断参数为空

最近在项目中遇到了一个小小的问题,和大家分享一下,简单的接口但是在不同的业务场景下需要有不同的校验逻辑,有的参数在特定的场景下需要校验,有的参数在另外的场景下则不需要校验。...interface MetadataValidation { /** * 错误信息 * @return */ String message() default "参数不能为空...log.error("Validation验证起数据解析失败:{}", e.getMessage()); } }); } /** * 非空判断...但是在我们的业务场景中多个参数接口使用的参数类是同一个,所以使用Spring的@Valid和@Validated自然是不行了。...其实换种想法也不是不可以那就是检验参数的再新建一个类,我觉得完全没必要,因为这样很容易就造成类爆炸。不知你是怎么样呢。欢迎评论。

23110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一个值得深思的小问题 - 请求中的参数值为空要不要携带该参数?

    我这朋友的问题是这样的,前端请求接口,带过去了一些参数,但是其中有个参数没值,也就是空,但是呢后端在接收该值的时候没有类型判断(该字段是int类型),相当于直接把一个空字符串直接转为int类型。...比如,请求参数如下 name=bigerfe&age=&a=1 其中参数age是int类型,但是前端传了空,后端取参数的时候报错了。...然后要出一个传参规范,声明string类型的字段如果值为空串的,请求的时候就不要携带该参数。其他类型的会给一个默认值。...接口规范中为每个字段说明其类型,并且给出默认值 服务端做统一的类型验证,不符合的直接给出错误码 那是被什么样的问题给拍回去了呢? 如果这个字段是必填的,而且是空串,那这个字段可以带吗?...比如我在后台要修改某个人的信息,改为空,怎么办?走不通了吧! 好了,别的不多说了,可能还有其他的场景,大家可以留言来讨论。 最后,有时候我们可能觉得某些方案不合理,但是一时也想不出去为什么不合理?

    3.3K20

    node后端接收到axios的post请求体为空

    node后端接收到axios的post请求体为空???...使用axios发送post请求,传入了Object格式的参数,在node后端req.body接收到的参数为空,但是网页上抓包检查时,发现请求的body确实是携带了参数的?...经过漫长的网上冲浪,并查了一下axios的源码,我发现axios的文档上有这样一句话 这就能解释为什么我之前发obj对象数据,请求体携带的确是json格式的数据,说明axios会自动转换数据为json格式后来我又在源码上看到了转换请求体参数格式的相关代码...// 配置解析 数据格式为表单数据的请求体 的中间件 app.use(express.urlencoded({ extended: false })) expres服务器默认无法解析数据格式为表单数据的请求体...在开发中,发送请求的入参大多是一个对象。在发送时,如果该请求为get请求,就需要对参数进行转化。

    9410

    接口请求返回成功,但数据为空,可能是这个原因

    网闸差点背锅 有一个服务,需要请求接口。大概流程是前台->网闸->反向代理->服务A->本地远程服务B->外部远程服务。 整个流程很长,但是很奇怪,前台返回一直是200,但返回为null。...在本地远程服务A看日志,请求没过去,那会也没怀疑服务A会存在问题。 本身服务A比较简单,就是接收前台参数,用OkHttp转发给本地远程服务B,接收本地远程服务B的返回结果处理之后就返回。...把远程连接上,打开日志记录,前端发起请求。 果然,问题就在这水灵灵的出现了,不早不晚。 什么原因呢? 之前服务A,做了一个骚操作:通过请求中地址和端口来转发到本地远程服务B。...A是不可用的,就导致请求超时。...请求超时之后,没有处理任何请求,就直接返回的null(null来背锅!)。 后续怎么办? 把本地远程服务B的地址改为固定地址。 再试一次,果然可以了。

    36010

    【JavaScript】内置对象 - Date 日期对象 ① ( Date 对象简介 | 使用构造函数创建 Date 对象 | 构造函数参数为时间戳 | 构造函数参数为空 | 构造函数参数为字符串 )

    year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]); 二、使用构造函数创建 Date 对象 1、构造函数参数为空...创建 Date 内置对象 , 参数为 时间戳 var date = new Date(0); // 打印创建的 Date 对象 // 输出 : Thu...// 输出 : Sun Dec 17 1995 03:24:00 GMT+0800 (中国标准时间) console.log(date); 执行结果 : 4、构造函数参数为多个数字值 使用...创建 Date 内置对象 , 参数为空 var date = new Date(); // 打印创建的 Date 对象 // 输出 : Fri Apr...创建 Date 内置对象 , 参数为 时间戳 date = new Date(0); // 打印创建的 Date 对象 // 输出 : Thu Jan

    50310

    【Kotlin】扩展函数 ② ( 扩展属性 | 为可空类型定义扩展函数 | 使用 infix 关键字修饰单个参数扩展函数的简略写法 )

    文章目录 一、扩展属性 二、可空类扩展 三、使用 infix 关键字修饰单个参数扩展函数的简略写法 一、扩展属性 ---- 上一篇博客 【Kotlin】扩展函数 ( 扩展函数简介 | 为 Any 超类定义扩展函数...---- 之前讲的定义扩展函数 , 扩展属性 , 都是为 非空类型 定义的 , 如果要为 可空类型 定义扩展函数 , 则需要在 扩展函数 中 处理时 , 要多考虑一层 接收者 this 为空 的 情况...; 注意下面的调用细节 : 如果定义的 扩展函数 是 为 非空类型定义的 , 可空类型变量 想要调用该 扩展函数 , 在调用时使用 " ?....非空类型扩展函数 如果定义的 扩展函数 是为 可空类型定义的 , 可空类型变量 想要调用该 扩展函数 , 在调用时直接使用 " . " 进行调用即可 ; 可空类型实例对象.可空类型扩展函数 代码示例...123abc this = null, string = abc, 接收者为空 abc 三、使用 infix 关键字修饰单个参数扩展函数的简略写法 ---- 如果 扩展函数 只有 一个参数 , 并且在

    1.9K30

    tensorflow中的slim函数集合

    参数:inputs:至少秩为2的张量,最后一个维度为静态值;即。' [batch_size, depth] ', ' [None, None, None, channels] '。...对于no正常化器函数,默认设置为Nonenormalizer_params:规范化函数参数。weights_initializer:权值的初始化器。...参数:scope:筛选要返回的变量的可选作用域suffix:用于过滤要返回的变量的可选后缀返回值:集合中具有范围和后缀的变量列表slim.get_or_create_global_step()get_or_create_global_step...参数:list_ops_or_scope:为包含当前范围的字典设置参数范围的操作的列表或元组。当list_ops_or_scope是dict时,kwargs必须为空。.../ (in + out);正态分布的标准差为√2。/ (in + out))’。参数:factor:浮动。一个乘法因素mode:字符串。

    1.6K30
    领券