4

在我的 Spring Boot 应用程序中,我有以下方法:

Decision create(@NotBlank String name, String url, @NotNull User author);

现在直接在代码中我正在检查以下条件:

if (!org.apache.commons.lang3.StringUtils.isEmpty(url) && !urlValidator.isValid(url)) {
    throw new IllegalArgumentException("Decision url is not valid");
}

换句话说 -url参数可以是null一个有效的 url。

是否可以用现有的验证注释(例如 JSR-303)替换此代码?

4

1 回答 1

2

Bean Validation 规范不包含对 url 的约束,但一些实现者将该约束添加为像 Hibernate Validator 的 @URL 这样的扩展,但请记住扩展的使用会损害可移植性,以避免您可以基于正则表达式创建自己的验证器。对于其他部分,您可以将 @NotBlank 用于用于名称字符串的 url 字符串空控件,看起来您在 @NotNull、@NotBlank、NotEmpty 约束之间存在混淆。

看看这个答案:https ://stackoverflow.com/a/17137308/5964741

但无论您选择扩展还是创建自己的验证器 url 字符串的空控件都是多余的。

于 2017-02-04T09:41:09.197 回答