インターセプタは、オブジェクトのアクション呼び出しをインターセプトするために動いています。それはまた、実行の前に実行されたアクションを防止することができるコードが実行される前または後に実行されたアクションを定義するために開発を可能にするメカニズムを提供するだけでなく、作用部の再利用可能なを抽出する方法を提供しました。AOP(アスペクト指向プログラミング)メソッドまたはフィールドの前インターセプターでアクセスされ、そして切片の前または特定の操作の後に追加されます。
どのように春ブーツでインターセプタを追加するには?
1.まず、彼のインターセプタを実現
輸入org.springframework.web.servlet.HandlerInterceptor。 輸入org.springframework.web.servlet.ModelAndView。 インポートのjavax.servlet.http.HttpServletRequest; インポートのjavax.servlet.http.HttpServletResponse; パブリック クラス MyInterceptorは実装HandlerInterceptor { @Override パブリック ブール preHandle(HttpServletRequestのリクエスト、HttpServletResponseの応答、オブジェクト・ハンドラ)がスロー例外{ するSystem.out.println( "preHandlerを" )。 返す 真; //这里一定要返回真要不然后面的不会执行 } @Override 公共 ボイド postHandle(HttpServletRequestのリクエスト、HttpServletResponseの応答、オブジェクト・ハンドラのModelAndViewのModelAndView)をスロー例外{ するSystem.out.println( "postHandlerを" )。 } @Override 公共 ボイド afterCompletion(HttpServletRequestのリクエスト、HttpServletResponseの応答、オブジェクト・ハンドラは、例外EX)がスロー例外{ するSystem.out.println( "afterHandlerを" )。 } }
2.インタフェースを実装し、メソッドをオーバーライドaddInterceptors WebMvcConfigurer
@Configuration パブリック クラス WebMvcConfig 実装WebMvcConfigurer { @Override 公共 のボイドaddInterceptors(InterceptorRegistryレジストリ){ (。registry.addInterceptor(myInterceptor())addPathPatterns "/ **" ); //独自のインターセプタは春に登録してインターセプトを追加パス } @Bean myInterceptor myInterceptorは(){ 戻り 新しい新しいmyInterceptorを(); //独自のインターセプター豆を提供します } }
3.テストコントローラを作成します
@RestController
パブリッククラスHelloController {
@GetMapping( "gethello")
パブリック文字列getHello(){
System.out.printlnは( "ハロー取得")。
「ハロー取得」を返します。
}
}
4.試験結果