【发布时间】:2016-07-04 12:12:19
【问题描述】:
我的应用程序中有两层验证。首先是由 bean 验证 API 执行的实体验证(例如,必填字段)。 第二个层次是业务逻辑验证。例如,用户有一个帖子。只有当他是该帖子的创建者并且帖子评分
if (post.getCreator().equals(session.getUser())) {
if (post.getRating() < 50) {
postRepository.delete(post);
} else errors.add(400, "Cant delete post with rating 50 or higher")
} else errors add (400, "You should be owner of the post")
我不喜欢这种方式,因为这种条件会被重复使用,而且我必须复制代码。此外,如果条件的数量大于 5 个左右,阅读和理解代码就会变得不真实。
此外,标准的 Spring Validator 不会很有帮助,因为我必须针对不同的操作(例如删除和更新)对一个实体进行不同的验证
所以我正在寻找一种以更智能的方式(可能是模式)执行此操作的方法,如果有人能给我提示,我将不胜感激。
提前致谢!
【问题讨论】:
标签: java spring validation design-patterns