
jsr-303那一套的。求分享~BTW :
Controller、Service?Hibernate-validator这种实现,在字段上增加注解来进行校验,如果同一个对象,不同的校验场景如何处理? 1 3dwelcome 2016-03-18 16:38:38 +08:00 如果只是防止第三方非法修改数据内容,个人觉得数据发送前做个全局数据流 hash, 然后签名就可以了。 签名不能伪造 => hash 值无法被第三方修改 => 数据流安全。 |
2 BuilderQiu OP |
3 88250 2016-03-18 16:51:39 +08:00 Controller 参数格式校验一直手写, Service 里面做参数相关业务逻辑的校验 |
4 BuilderQiu OP @88250 现在也基本都是手写的,不过感觉太繁琐了,场景一多,判断写一堆 |
5 Sharuru 2016-03-18 17:34:03 +08:00 =m= 看具体环境吧,比如我现在写的这个,全靠前端 validation 来检测,后台抓个大异常,然后防一下 SQL 注入。 |
6 88250 2016-03-18 17:36:24 +08:00 @BuilderQiu 手写比较好控制,其实代码也不会太多的,而且调试方便 |
8 slixurd 2016-03-18 17:39:10 +08:00 如果传个 Bean 进来,或者传过来的数据可以反序列化为 VO ,我们都把校验逻辑会写在 VO 里 这样可以简单复用一下,比较一个 VO 用在多个地方很正常 |
9 BuilderQiu OP @Sharuru 后端也得检验哇 |
10 BuilderQiu OP @88250 主要是代码都差不多,判空之类的 |
11 BuilderQiu OP @fwrq41251 分组到是可以~不同场景用不同组 |
12 BuilderQiu OP |
13 Ouyangan 2016-03-18 17:48:14 +08:00 这个问题我也很困惑 , 关注 |
14 88250 2016-03-18 18:01:45 +08:00 @BuilderQiu 工具类调用,封装一下返回文案范围值啥的,也就 1 行代码.. |
15 murmur 2016-03-18 18:44:26 +08:00 前端无论怎么做后端都要校验 但是有些东西必须失败一次才知道结果 比如唯一性校验 或者涉及外键关联的 那就了 是让 try 一下让他报错接着 还是真的去数据库校验一次呢 |
16 BuilderQiu OP @murmur 这种一般都是去查一次吧?虽然还是可能查询的时候不存在,添加的时候已存在了最后进入报错流程…… |
17 caixiexin 2016-03-18 20:21:13 +08:00 via Android 参数完整性,判空,长度,字符串个数的校验,用 jsr303 够用了呀。 写一个 baseController ,在里面同一捕获 jsr303 的异常,并封装 response 。然后所有 controller 基础它。 剩下的工作就是定义各种错误的 message 和新增接口的时候为每个请求类里面属性加注解了。 另外, Hibernate-validato 不就是 jsr303 的实现吗 |
![]() | 19 BuilderQiu OP |
20 odirus 2016-03-18 21:38:54 +08:00 @caixiexin 谢谢,我也有这个问题。。。一直不是非常明白。 请教一下: hibernate validator 是挺好用的,但是万一我传入的参数不是一个 bean 里面的字段呢?谢谢。主要是写接口的时候,参数和 bean 没任何联系。 |
21 BuilderQiu OP |
22 odirus 2016-03-18 22:18:33 +08:00 @BuilderQiu 谢谢。 |
23 Coande 2017-07-26 01:16:09 +08:00 楼主有没有找到比较好的方法?一直比较疑惑。 |
24 BuilderQiu OP |