规范性验证放在Controller层
例如不能为空,不能为null等基本的规范性验证。前端也验证过了,后端验证确保健壮。但其实它不属于任何业务。而且Spring boot 里面的 @Validated,@NotNull @NotBlank 校验注解也是放在Controller层的。所以规范性校验放在Controller层是大家都比较认可的。
权限校验也可放在这层
业务性验证放在Service层
需要查询数据库的,比如用户名不能重复,这种校验放在service层比较合适。因为与业务挂钩了。我有可能业务需求是用户名第一个字不能重复,也有可能是用户名前两个字不能重复。