springboot 数据验证是放在Controller层还是Service层

本文探讨了在Springboot中,规范性校验通常放置在Controller层,作为通用验证手段,而业务逻辑相关的验证则在Service层进行,如数据库交互和定制化需求。理解这些原则有助于提升代码结构清晰度和维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

规范性验证放在Controller层

例如不能为空,不能为null等基本的规范性验证。前端也验证过了,后端验证确保健壮。但其实它不属于任何业务。而且Spring boot 里面的 @Validated,@NotNull @NotBlank 校验注解也是放在Controller层的。所以规范性校验放在Controller层是大家都比较认可的。

业务性验证放在Service层

需要查询数据库的,比如用户名不能重复,这种校验放在service层比较合适。因为与业务挂钩了。我有可能业务需求是用户名第一个字不能重复,也有可能是用户名前两个字不能重复。

其他

规范是人定的,是为了使代码方便维护扩展修改。并没有任何强制规定你的代码究应该怎么写。但是规范总是好的。。。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值