springBoot拦截器

最近用java的springBoot框架开发一个登陆的功能,发现springboot有个颇有意思的功能就是拦截器能能php

其实拦截器就至关于php的构造函数,不对,应该是包含了php的构造函数。java

具体步骤以下:spring

1.注册构造器

    也就是框架在启动的时候先要建立一个拦截器api

    新建类而后去继承WebMvcConfigurerAdapter,而后重写addInterceptors这个方法,建立拦截器就在这个方法里面springboot

@Override    
    public void addInterceptors(InterceptorRegistry registry) {    
        //注册自定义拦截器,添加拦截路径和排除拦截路径    
        registry.addInterceptor(new InterceptorConfig()).addPathPatterns("api/path/**").excludePathPatterns("api/path/login");

addInterceptor:建立拦截器对象框架

addPathPatterns:url正则匹配ide

excludePathPatterns:排除的路径函数

(注意:addInterceptors这个方法所在的类必需要加注释@Configuration不然是行不通的,网上好多和我相同的方法,都是没有这个注解)post

2.建立拦截器类,这个类要实现HandlerInterceptor

public class AuthInterceptor implements HandlerInterceptor{

	/**
	 * 进入请求的时候拦截
	 */
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		 Log.info("---------------------开始进入请求地址拦截----------------------------");    
		
		return false;
	}

	/**
	 * 视图渲染以前拦截
	 */
	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		Log.info("---------------------处理请求完成后视图渲染以前的处理操做----------------------------");   
		
	}

	/**
	 * 视图渲染以后
	 */
	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		Log.info("---------------------视图渲染以后的操做----------------------------");   
		
	}

}

preHandle:这个方法是url地址刚请求的时候就进这个方法url

postHandle:这个方法是请求的方法执行完了,要渲染页面了,那个先进这个方法

afterCompletion:这个方法是页面渲染后触发这个方法

若是是登陆注册就用preHandle这个作拦截就能够了,若是返回true就经过拦截器了,不然不经过

相关文章
相关标签/搜索