sprint boot ---攔截器

作項目的時候咱們常遇到的問題就是執行對應的邏輯代碼前完成數據驗證,sprint boot 如何實現的呢?java

攔截器web

過濾器spring

對於以上兩個概念的區別能夠自行查找網上的資料ide

如今咱們一步步實現攔截器post

1 建立spring boot 項目spa

2 建立攔截器rest

package com.interceptor;

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@Component
public class LoginInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         response.sendRedirect("/v1/banner");
         System.out.println("攔截器生效");
         return true;  // true 繼續執行,false 直接返回
    }

    @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 {

    }
}

以上咱們建立了攔截器並加入到了組件中code

package com;


import com.interceptor.LoginInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

@SpringBootConfiguration
public class InterceptorConfig extends WebMvcConfigurationSupport {

    @Autowired
    LoginInterceptor loginInterceptor;
    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(loginInterceptor).addPathPatterns("/**").excludePathPatterns("/v1/banner");
    }
}

完成攔截器的註冊,建立rest請求體驗攔截器blog

相關文章
相關標籤/搜索