私は自分のデータアクセスオブジェクトクラスのフィールドを検証しています。 1つの試みとして、プロパティ(@NotNull、@NotBlank、@Min、@Maxなど)にBean検証アノテーションを追加し始めました。私はまた、より冗長なライブラリとドキュメンテーション(@Api(...))のために、より多くの注釈Jackson(JsonProperty(..))を持っています。私の意見では、クラスは多くの注釈(各プロパティは少なくとも3つの注釈を持つ)で非常に "汚い"でした。一つのフィールドの例:別の試みでBean検証とカスタマイズ検証フレームワークのどちらを使用するのですか?
@JsonProperty("ownName")
@Api(description="it is my own name" required=true)
@Valid
@NotNull
private SomeObject object;
は、私は春Validator
インターフェースで自分の検証を行ってきました。 Spring Interfaceのようなカスタムバリデーターを使用するときれいに見えますが、状況に応じて複数のバリデータを自由に生成することもできます。また、クラスはアノテーションでオーバーロードされていないようで、バリデーションはクラスとは独立しています。 Validator
の例:
public class UserValidator implements Validator {
@Override
public boolean supports(Class<?> arg0) {
return User.class.isAssignableFrom(arg0);
}
@Override
public void validate(Object obj, Errors error) {
User user = (User) obj;
if(user.getPassword().length() < 10)
{
error.reject("Password must be lesser than 10");
}
//more validations....
}
}
- 使用すると、1つまたは別のものを使うのでしょうか?
- それぞれの長所と短所は何ですか?