1

JSR-303 を使用してメソッドパラメーターを検証し、パラメーターが無効な場合に例外をスローするにはどうすればよいですか?

たとえば、次のようにしますpublic void createUser(@ValidOrThrowException User user) {...}

今のところ、メソッド本体のすべてのメソッド パラメーターをチェックします。

public void createUser(User user) {
    ConstraintViolations violations = Validator.validate(user);
    if (!violations.isEmpty()) {
        throw new IllegalArgumentException(createExceptionMessage(violations ));
    }
    ...//business logic
}

そして醜いと思います。

PS リファレンス実装として、Hibernate-validator 4.1.0.Final を使用します

4

1 に答える 1

1

Hibernate Validator 4.2.0 以降にアップグレードできる場合は、メソッドのパラメーターと戻り値の検証をサポートするメソッド検証機能を使用できます。

検証エンジンは、動的プロキシ、AOP、インターセプターなどの手段を使用して、制約付きメソッドの呼び出し時に自動的に呼び出すことができます。使用するフレームワークに応じて、たとえば次のいずれかを使用できます。

Bean Validation 1.1 (近日中に完成予定) およびその参照実装である Hibernate Validator 5 の時点で、メソッドの検証は標準化された Bean Validation API の一部になることに注意してください。

于 2013-02-12T11:06:26.480 に答える