|
FlatServe AOP Plugin 0.4 |
||||||||
前 次 | フレームあり フレームなし |
参照先:
説明
パッケージ | |
---|---|
com.small_it_office.flatserve.aop | AOP機能を利用するための機能を提供します。 |
FlatServe AOPプラグインは、FlatServeのHTTPサービスメソッドにAOP機能を追加するプラグインです。
HTTPサービスメソッドに対して、インターセプタを適用することができます。 以下のインターセプタが利用できます。
HttpServiceMethodInterceptor
の実装クラス
HttpServiceMethodInterceptor
は、AOP allianceのメソッドインターセプタと似ていますが、
型の互換性はありません。しかし、HttpServiceMethodInterceptor.invoke(com.small_it_office.flatserve.aop.HttpServiceMethodInvocation)
メソッドが引数で受け取るオブジェクトには、HTTPリクエストやHTTPレスポンスなど、サーブレット特有のオブジェクトが
格納されているため、インターセプタからこれらのオブジェクトにアクセスすることができます。
インターセプタをHTTPサービスメソッドに適用するためのアスペクトは、AspectConfig
オブジェクトを
生成することで定義します。インターセプタを適用するHTTPサービスクラス・メソッドの条件は、以下のいずれかの方法で
指定することができます。いずれもHTTPサービスクラス単位の指定であり、メソッド単位の指定はできません。
AspectConfig
オブジェクトは、FlatServeの初期化時に実行される
com.small_it_office.flatserve.core.config.ApplicationInitializerの実装クラスでConfig#addOptionalConfigメソッドで
Configオブジェクトにセットする必要があります。
あるインターセプタを、すべてのHTTPサービスクラスに対して適用するためには、以下の要領で設定を行います。
Config config = new Config(); AspectConfig ac = new AspectConfig(); MethodInterceptor interceptor = new MyMethodInterceptor(); ac.addAspect(interceptor); .... config.addOptionalConfig(ac);
特定のアノテーションが指定されたHTTPサービスクラスにだけ、インターセプタを適用するためには、以下の要領で設定を行います。 この例では、@MyInterceptorというアノテーションが指定されたHTTPサービスクラスに、MyMethodInterceptorが適用されます。
Config config = new Config(); AspectConfig ac = new AspectConfig(); MethodInterceptor interceptor = new MyMethodInterceptor(); ac.addAspectWithAnnotation(interceptor, MyInterceptor.class); .... config.addOptionalConfig(ac);
AOPプラグインは、ログメッセージおよび例外メッセージを、リソースバンドルを使って読み込んでいます。 デフォルトで提供されているメッセージは日本語のみですが、 各ロケールに対応したリソースバンドルファイルを作成することで国際化・地域化することができます。
ログ出力メッセージおよび例外メッセージのリソースバンドル名は、flatserve-aop-messagesです。 JARファイル内にはflatserve-aop-messages_ja.propertiesファイルが含まれているため、 日本語のメッセージはそのまま利用可能です。 その他の言語で記述されたリソースバンドルファイルを、クラスパスが通ったディレクトリに配置することで国際化・地域化できます。 たとえば、ログや例外のメッセージを英語化する場合は、flatserve-aop-messages_en.propertiesをクラスパス上に配置します。 実行時のロケールは、FlatServeコアモジュールの設定オブジェクトによって指定できます。 指定しない場合は、実行環境のデフォルトロケールが適用されます。
|
FlatServe AOP Plugin 0.4 |
||||||||
前 次 | フレームあり フレームなし |