サードパーティ製のインターフェイス呼び出しフレームワーク

同社は最近、標準化とビジネスの許可を安定化させるのを助けるために、このフレームワークのクローズアップために、フレームワークと呼ばれるサードパーティのインターフェイスに手紙を書きました。

フレーム### 
ファサード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要求)。
	
}

  

 

おすすめ

転載: www.cnblogs.com/yun965861480/p/11511920.html