「X is valid IFF Service Y returns Z」という形式のビジネス検証ロジックがいくつかあります。ここで、X と Z はコンパイル時に認識され、Y の場所は Spring 構成ファイルからロードされます。
JSR-303 注釈ベースの検証を Spring 構成と共に使用したいので、次のようなコードを記述できます。
カスタム クラス レベルの制約の注釈:
@MyValidation
public class X { .... }
@MyValidationの ConstraintValidator :
public class MyValidationValidator implements ConstraintValidator<MyValidation, X> {
private MyService service;
public MyService getService() { return service; }
public void setService(MyService serv) { this.service = serv; }
//Validation Logic...
}
春の設定:
<bean id="ServiceY" class="...">
...
</bean>
<bean id="mvv" class="MyValidationValidator">
<property name="service" value="ServiceY" />
</bean>
しかし、バリデーターのプロパティが設定されていないため、これらをそのように組み合わせようとする私の試みは失敗しています。
現在、Spring AOP Interceptors を回避策として使用していますが、それは私の考えでは理想的ではありません。
ここでの他の質問の 1 つは、プロパティ ファイル/プロパティを使用することを考えさせましたが、サービスの構成を繰り返す必要はありませんか?
別の人は、制約マッピングをプログラムで定義することについて言及しましたが、私がそうしている場合、おそらく回避策を講じたほうがよいでしょう。
その動的構成を行う方法についての手がかりはありますか?