同社は最近、標準化とビジネスの許可を安定化させるのを助けるために、このフレームワークのクローズアップために、フレームワークと呼ばれるサードパーティのインターフェイスに手紙を書きました。
フレーム### ファサードInvoker.invoking -BizServiceサービスインターフェース -BizAOPServiceサービス部 サービス・インタフェース・コールの呼び出し+ チェックBizService.checkパラメータ BizService.pre前コールサービスは、 フロントセクションのビジネスコールBizAOPService.pre BizService.executeサービスコール BizAOPService.afterをサービスセクションでは、呼び出すように設定した後に のみBizService.afterビジネスの後にコールを BizService.handlerException例外処理
実際のフレーム構造は、明確なものを抽象化、ないもののうち、主要な橋のテンプレートちょうど同じことは非常に簡単ではありません。
特定のニーズを見るためにここにありますようにここで私は実際にはインターセプタの形似たセットにBizAOPServiceすることができます。
パブリックインターフェースインボーカ<M、N> { ボイド呼び出し(BizService <M、N> bizService、BizAOPService <M、N> bizAOPService、MのM、N n)は例外をスローします。 }
インタフェースBizServiceパブリック<M、N> { / **パラメータ* /チェック ボイドチェック(Mリクエスト、レスポンスN)を; / **このような組み込みアセンブリとして呼処理パラメータの前に、更新サービス・ステータス* / ボイドプレ(Mリクエスト、N応答); / **インターフェース呼び出し* / ;無効(Mリクエスト、N Response)を実行 / **呼処理サービスのステータスを更新した後* / (M・リクエスト、N応答)後のボイド; / * **チェックパラメータの例外処理/ 無効checkException(M要求、応答N、例外E)が例外をスローし、 例外処理/呼び出しが** * / 無効preException(Mリクエスト、レスポンスNは、例外E)が例外をスロー; /コール例外処理** * / 無効executeException (Mリクエスト、レスポンスN、例外E)は例外をスローする。 呼び出しの後/例外ハンドラが** * / ボイドafterException(Mリクエスト、レスポンスN、例外E)は例外をスロー; }
輸入org.slf4j.Logger。 輸入org.slf4j.LoggerFactory; パブリック抽象クラスAbstractBizService <M、N>はBizService <M、N> {実装 プライベート静的最終ロガーロガー= LoggerFactory.getLogger(AbstractBizService.class)。 @Override 公共ボイドチェック(M要求、N応答){ LOGGER.info( "接口调用参数检查:{}、{}"、リクエスト、レスポンス)。 } @Override 公共ボイドプレ(M要求、N応答){ LOGGER.info( "调用前处理:{}、{}"、リクエスト、レスポンス)。 } @Override 公共ボイド後(M要求、Nレスポンス){ LOGGER.info( "调用后处理:{}、{}"、リクエスト、レスポンス)。 } @Override 公共ボイドcheckException(M要求、N応答、例外e)は{例外をスロー LOGGER.info( "インターフェイスのコールパラメータチェック例外ハンドラ:{}、{}"、要求、応答、E); スローE; } @Override ます。public void preException(Mリクエスト、レスポンスN、例外E)は、例外{スロー LOGGERを。情報( "呼び出す前に例外処理:{}、{}"、要求、応答、E); スローE; } @Override 公共ボイドexecuteException(Mリクエスト、レスポンスN、例外E)は、例外{スロー logger.info(「インターフェイスをコール例外処理:{}、{}」、要求、応答、E); スローE; } @Override 公共ボイドafterException(M要求が、応答N、例外E)がスロー例外{ logger.info( "ポストコール例外処理を:{}、{}"、要求、応答、E); Eを投げます。 } }
パブリックインターフェースBizAOPService <M、N> { ボイドプレ(M要求、N応答)。 (M要求、N応答)の後に無効。 ストリングgetBizNo(M要求)。 }