Springboot引入拦截器

自定义的拦截器类 Interceptor

package cn.zytao.taosir.auth.config;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView; public class AuthInterceptor implements HandlerInterceptor{ /**
* 请求处理之后
*/
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
// TODO Auto-generated method stub
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
} /**
* 请求处理之后调用
*/
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
// TODO Auto-generated method stub
HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
} /**
* 请求处理之前
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
return HandlerInterceptor.super.preHandle(request, response, handler);
}
}

将拦截器添加到springmvc配置中,并放行swagger的相关资源

package cn.zytao.taosir.auth.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; @Configuration
public class SpringMVCConfig extends WebMvcConfigurationSupport{ @Bean
public AuthInterceptor getAuthInterceptor() {
return new AuthInterceptor();
} @Override
public void addInterceptors(InterceptorRegistry registry) {
registry
.addInterceptor(getAuthInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/login")
.excludePathPatterns("/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**");
super.addInterceptors(registry);
} @Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
super.addResourceHandlers(registry);
}
}
在addInterceptors方法中添加拦截器时,是new的一个拦截器。而并不是引入springBean容器初始化时,已经初始化好了的bean实例,并不是同一个对象,故而访问时肯定是无法引入Interceptor类里面引入的bean实例,可能产生空指针异常。即无法引入默认注入的Bean,那么我们就自己定义一个Bean,然后在拦截器添加方法内引入这个bean即可,上面主要对此进行了处理。

最新文章

  1. web网页中使用vlc插件播放相机rtsp流视频
  2. C# Socket异步聊天例子
  3. js实现光标位置置后
  4. wpf 任务栏闪烁
  5. Java 的局部变量和成员变量
  6. Codeforces Round #285 (Div. 2) A B C 模拟 stl 拓扑排序
  7. Java发送邮件的简单实现
  8. 利用.htaccess绑定域名到子目录
  9. 利用js闭包获取索引号
  10. jQuery 效果函数(三)
  11. python3 练手实例8 批量命名图片
  12. Python:机器学习三剑客之 NumPy
  13. ng环境搭建步骤
  14. 大数据环境完全分布式搭建hbase-0.96.2-hadoop2
  15. centos安装python3虚拟环境和python3安装
  16. AndroidStudio升级到2.3版本无法编译的解决方法
  17. Java的Integer和int有什么区别
  18. ArcGIS API for javascript开发笔记(四)——GP服务调用之GP模型的规范化制作详解
  19. Linux光标移动异常
  20. cpu真实核数

热门文章

  1. AES ECB PKCS5/PKCS7 加解密 python实现 支持中文
  2. Spring Boot浅谈(是什么/能干什么/优点和不足)
  3. SQLPlus在连接时通常有四种方式
  4. java web项目发生异常依然能运行
  5. 【分享】GEARS of DRAGOON 1+2【日文硬盘版】[带全CG存档&攻略+SSG改动+打开存档补丁]
  6. 生成静态页java代码
  7. 《coredump问题原理探究》Linux x86版7.8节vector相关的iterator对象
  8. Android新手入门2016(8)--ListView之ArrayAdapter
  9. springmvc+spring+jpa(hibernate)+redis+maven配置
  10. swift-初探webView与JS交互