当前位置: 移动技术网 > IT编程>开发语言>Java > (入门SpringBoot)SpringBoot结合拦截器(七)

(入门SpringBoot)SpringBoot结合拦截器(七)

2019年05月28日  | 移动技术网IT编程  | 我要评论

springboot拦截器:

  1. 拦截器还是照旧和springmvc一样:

@component
public class myinterceptor implements handlerinterceptor {
    /**
     * prehandle:在业务处理器处理请求之前被调用。预处理,可以进行编码、安全控制、权限校验等处理;
     * @param request
     * @param response
     * @param handler
     * @return
     * @throws exception
     */
    @override
    public boolean prehandle(httpservletrequest request, httpservletresponse response, object handler)
            throws exception {
        system.out.println("prehandle");
        //进行逻辑判断,如果ok就返回true,不行就返回false,返回false就不会处理改请求
        return true;
    }

    /**
     * posthandle:在业务处理器处理请求执行完成后,生成视图之前执行。后处理(调用了service并返回modelandview,但未进行页面渲染),有机会修改modelandview;
     * @param request
     * @param response
     * @param handler
     * @param modelandview
     * @throws exception
     */
    @override
    public void posthandle(httpservletrequest request, httpservletresponse response, object handler, modelandview modelandview) throws exception {
        system.out.println("posthandle...");
    }

    /**
     * aftercompletion:在dispatcherservlet完全处理完请求后被调用,可用于清理资源等。返回处理(已经渲染了页面);
     * @param request
     * @param response
     * @param handler
     * @param ex
     * @throws exception
     */
    @override
    public void aftercompletion(httpservletrequest request, httpservletresponse response, object handler, exception ex) throws exception {
        system.out.println("aftercompletion...");
    }
}

  1. 把拦截器放在实现了webmvcconfigurer java类中:


/**
 * 使用webmvcconfigurer可以来扩展springmvc的功能
 *
 * 在spring5.0之前可以继承webmvcconfigureradapter此适配器进行配置,但spring5.0以后此适配器就被废弃(已被标注为@deprecated),
 * 目前有两种解决方案,一种是直接实现webmvcconfigurer,另一种是直接继承webmvcconfigurationsupport,官方推荐第一种方案。
 */
@configuration
public class webmvcconfig implements webmvcconfigurer {

    /**
     * 自定义拦截规则
     *
     * @param registry
     */
    @override
    public void addinterceptors(interceptorregistry registry) {
        // addpathpatterns - 用于添加拦截规则
        // excludepathpatterns - 用户排除拦截
        registry.addinterceptor(new myinterceptor())
                .addpathpatterns("/**")
                .excludepathpatterns("/");
    }
}

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网