前に
Before アノテーションは、クラス レベルとメソッド レベルでインターセプタを設定できます。
上記のコードに示すように、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、同じレベルに複数のインターセプタがある場合、同じレベルでの実行順序は次のようになります: 前に構成されたものが最初に実行されます。