S2Vali を作りながら、提供側に必要な技術を学ぶ(1)
S2Validator なるものを作ってみよう! - ワインと将棋とインターネット で書いたような仕様で S2Validator(改めS2Vali) を作り始めました。
S2Valiでは使い手に、
public interface CsvValidator { public String[] validateSomething(SomethingDto dto); }
このようにインターフェースを定義してもらい、
<component class="foo.bar.CsvValidator"> <aspect>s2ValiInterceptor</aspect> </component>
このようにコンポーネントにaspectを指定してもらうことで自動的にValidationを実行します。
まず最初にInterceptorの製作から。
上記のようにInterfaceにAspectをかけただけのコンポーネントをインスタンス化するためにこちら側で何か処理が必要かと思っていたのですが、実はs2-containerがよきに計らってくれるようで何もしなくてよさそう。
AbstractInterceptorを拡張してinvokeメソッドに実際のValidation処理を書くだけでよさそうです。