springboot 配置攔截器

spring boot 配置攔截器

 

springboot配置攔截器非常簡單,首先新建一個自定義的攔截器類,並實現 HandlerInterceptor接口,重寫三個方法;

public class MyInterceptor implements HandlerInterceptor {
 
    @Autowired
    private UserService userService;

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {

    }
}

 

在webconf類中 配置攔截器並注入:

@EnableWebMvc
@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
    }

    @Bean
    public MyInterceptor myInterceptor() {
        return new MyInterceptor();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        方式一:
        registry.addInterceptor(myInterceptor()).addPathPatterns("/**");  //對來自/**/** 這個鏈接來的請求進行攔截

        方式二:
       registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**"); 
    }

 

此時就配置好了。

   有個小問題需要注意:

          假如想要在自定義的攔截器類裏 調用service層 或者別的層的類方法,如userService 的方法,conf配置裏 需要用方式一:

          即把一下這句話中的  new MyInterceptor(), 改成    myInterceptor()   如下:

 registry.addInterceptor(myInterceptor()).addPathPatterns("/**"); 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章