私はかなり長い間Grailsを勉強してきました。そして、フィルターとインターセプターについて少し調べました。両方とも、セッションを追跡したり、特定のコントローラーの権限のないユーザーをリダイレクトしたりする機能とほぼ同じです。Grails Filters vs Interceptor
しかし、インターセプタよりもフィルタを使用する必要があるのはなぜですか、またその逆でも、私は混乱しています。 Inceptorsには2つのコントローラメソッドbeforeInterceptor
とafterInterceptor
があり、フィルタには3つの共通クロージャbefore
,after
とafterView
があります。
私の質問は、Interceptorに対してFilterを使用した場合の長所と短所を示しています。このようにして、開発者は、特定のコントローラでフィルタやインターセプタを使用して、トラッキング、リダイレクトなどを行うタイミングと場所と理由を決定できます。
です。しかし、同様のインターセプトロジックを保持する抽象コントローラを作成し、このコントローラを他のすべてのコントローラの親にすることはできませんか? どのような場合に、フィルタリングロジックを 'Filters'によってそのクロージャー、' afterView'で宣言する必要があると言えますか? –
そして、少し異なるロジックが必要なので、別の抽象コントローラを作成する必要があります。フィルタを使用すると、コードを一箇所に集中させ、必要のない依存関係をスキップすることができます。 –