springboot拦截器

这里首先实现HandlerInterceptor接口,进行拦截业务操作:

@Component
public class UserInterceptor  implements HandlerInterceptor {


	@Override
 	 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
 	 	//进行拦截判断,return true放行,反之拦截
 	 	return false;
 	 }
	@Override
 	 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object o, ModelAndView modelAndView) 					throws Exception {
  }

  @Override
  public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object o, Exception e) throws Exception {
  }
}

再创建一个类,继承WebMvcConfigurationSupport,进行拦截路径的设置:

@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {

  @Override
  public void configurePathMatch(PathMatchConfigurer configurer) {
    configurer.setUseSuffixPatternMatch(false);
  }

  /**
   * Add intercepter
   *
   * @param registry
   */
  @Override
  public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new UserInterceptor())
    	      .excludePathPatterns("/register","/login")    //放行路径
              .addPathPatterns("/**");  //拦截路径

  }

//添加资源路径,否则无法渲染页面
  @Override
  protected void addResourceHandlers(ResourceHandlerRegistry registry) {
    super.addResourceHandlers(registry);
    registry.addResourceHandler("/static/**").addResourceLocations(
        "file:./views/" + siteConfig.getTheme() + "/static/",
        "classpath:/" + siteConfig.getTheme() + "/static/");
  }

//  @Override
//  protected void addCorsMappings(CorsRegistry registry) {
//    registry.addMapping("/**")
//            .allowedOrigins("*")
//            .allowCredentials(true)
//            .allowedMethods("GET", "POST", "DELETE", "PUT")
//            .maxAge(3600);
//  }
}

有一点特别重要,对于搞不清拦截器过滤器的人来说,只需要记住一句话,拦截器是spring的,(这里不说Struts),过滤器是jdk自带的
过滤器在启动的时候就加载了,只加载一次,对所有请求都会过滤;拦截器只能对action请求拦截,也就是前端请求一次Controller,拦截器里可以对spring容器里注入的对象进行操作,也就是说你可以在拦截器里写增删改查;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT界的奇葩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值