私はString
を保持する値オブジェクトを持っています。そのStringはいくつかの制限(長さ、許容される文字など)の対象となります。コンストラクタのJavaバリデータアノテーションの使い方は?
オブジェクトの検証にJavaまたはSpring検証APIを使用したいと思います。 作成時に(コンストラクタ内で)自分のドメインオブジェクトを検証したいと思います。 (this
使用して検証APIを検証する)ことを認識
サンプルコードは:
void validate() {
LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
Set<ConstraintViolation<Msisdn>> violations = localValidatorFactoryBean.getValidator().validate(this);
if (!violations.isEmpty()) {
throw new ConstraintViolationException(violations);
}
}
私は、コンストラクタからjavax.validation.Validator
のインスタンスを取得する方法がわかりません。 Spring管理コード(サービス)私はjavax.validation.Validator
またはorg.springframework.validation.Validator
のちょうど@Autowire
インスタンスを可能性があり、それが作品に
。
しかし、バリューマネージドコードの外で(バリューオブジェクトのコンストラクタ内で、それは自分で立っています)、それを動作させるにはどうすればいいですか?
私はifsを使って検証ルールを書くことができますが、検証アノテーションはコードをもっと簡単にすることができます。