前に


Before アノテーションは、クラス レベルとメソッド レベルでインターセプタを設定できます。


1475634939249992.png

上記のコードに示すように、Before はクラス レベルでインターセプタを設定できます。とメソッド レベル。前者はこのクラスのすべてのメソッドをインターセプトし、後者はこのメソッドのみをインターセプトします。さらに、Before では複数のインターセプターを同時に構成できます。中括弧内で使用し、複数のインターセプターをカンマで区切ります。

クラスおよびメソッドレベルのインターセプタに加えて、JFinalはグローバルインターセプタとInjectインターセプタもサポートしています(Inject

インターセプタは後で紹介します)。前者は、コントロール層のグローバルインターセプタとビジネス層のグローバルインターセプタに分かれています。コントロール層のすべてのアクション メソッド、および後者はビジネス層のすべてのメソッドをインターセプトします。

グローバル インターセプタは YourJFinalConfig で設定する必要があります。以下は設定例です:


public class AppConfig extends JFinalConfig {
	public void configInterceptor(Interceptors me) {
	// 添加控制层全局拦截器
	me.addGlobalActionInterceptor(new GlobalActionInterceptor());
 
	// 添加业务层全局拦截器
	me.addGlobalServiceInterceptor(new GlobalServiceInterceptor());
 
	// 为兼容老版本保留的方法,功能与addGlobalActionInterceptor完全一样
	me.add(new GlobalActionInterceptor());
	}
}


メソッドが複数のレベルのインターセプタによってインターセプトされる場合、インターセプタの各レベルの実行順序は次のとおりです。 Global 、Inject、Class、Method、同じレベルに複数のインターセプタがある場合、同じレベルでの実行順序は次のようになります: 前に構成されたものが最初に実行されます。