menu
書いてる野郎
orebike@gmail.com
Controller に対するインターセプターを書くことで共通処理が入れられる。
HandlerInterceptor というインターフェースを実装する
public class HogeInterceptor implements HandlerInterceptor{ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println(request.getRequestURI()); //return true; return false; } }
この preHandle というメソッドは Controller のメソッド開始前に動作させたいモノを入れる。 ここで true を返すと Controller に処理が渡って継続される。false を返すとここで処理が中段されて response が返る。 ここではなんの指定もしてないので真っ白な何かが返る予定。
こういう風に書くと全体のリクエストに対して適用される。
@SpringBootApplication public class UnkoApplication { public static void main(String[] args) { SpringApplication.run(UnkoApplication.class, args); } @Bean public MappedInterceptor interceptor() { return new MappedInterceptor(new String[]{"/**"}, hogeInterceptor()); } @Bean public HogeInterceptor hogeInterceptor() { return new HogeInterceptor(); } }
静的なファイルへのリクエストを外したいとするならば
return new MappedInterceptor( new String[]{"/**"}, new String[]{"/css/**", "/js/**"}, hogeInterceptor());