SpringBoot 2.x中拦截器的使用

  • SpringBoot 2.x版本启用拦截器配置,会显示WebMvcConfigurerAdapter将被抛弃,使用WebMvcConfigurationSupport替代会导致静态资源不能访问的问题。
  • 发现只要继承 WebMvcConfigurationSupport 并且将文件加入配置 ,则在yml或properties中配置的相关内容会失效。
  • 解决办法是需要重新指定静态资源。

示例如下

  • 登录拦截器
@Component
public class BaseInterceptor implements HandlerInterceptor {
    private static final Logger logger = LoggerFactory.getLogger(BaseInterceptor.class);
    private static final String USER_AGENT = "user-agent";

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String uri = request.getRequestURI();
        String ip = IpUtil.getIpAddrByRequest(request);
        logger.info("UserAgent: {}", request.getHeader(USER_AGENT));
        logger.info("用户访问地址: {}, 来路地址: {}", uri, ip);

        //请求拦截处理
        HttpSession session = request.getSession();
        User user = (User) session.getAttribute(WebConst.LOGIN_SESSION_KEY);
        if (uri.startsWith("/admin") && !uri.startsWith("/admin/login") && null == user) {
            response.sendRedirect(request.getContextPath() + "/admin/login");
            return false;
        }
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    }
}
  • 拦截器配置类
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {

    @Resource
    private BaseInterceptor baseInterceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(baseInterceptor);
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/static/");
        super.addResourceHandlers(registry);
    }
}
文件目录.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 收听简书播客 文/Jack老钱 那些熟悉的日子 留在了身后 它们将于某年某月的某一个晚上 和漂泊的候鸟一起 从容地...
    简书播客阅读 586评论 1 3
  • 随着人们经济支出程度的不时进步,人们的肉体需求也在不时发作着变化,由于古钱币具有历史时代的见证,且本身存在着深沉的...
    不如初12阅读 208评论 0 0
  • 这两日的苦,没法言说。 身体被疼痛折磨、挤压、揪拽,不剩一丝气力,想要站立都不可能。想到有些人在与苦痛连年战斗,那...
    清和qinghe阅读 428评论 2 3
  • 这是一个没有什么卵用但是又舍不得删掉的APP 诗色顾名思义就是像诗一样记录颜色 整个APP就是展示色块并且给每一个...
    鲁比碎碎念阅读 934评论 0 0

友情链接更多精彩内容