Spring boot中使用 Servlet 组件 中的Filter @WebFilter 注解中 urlPatterns 参数 不生效

@WebFilter(urlPatterns = {“/mall/“,”/fac/”,“/app/“,”/base/”,“/logs/“,”/ppq/”,“/wps/*”}, filterName = “checkRequestFilter”)
这个注解 发现配置 不生效 所有路径都拦截

第一步把 自定义的拦截器 上的 @Component 注解 给删除了 如果没有写这个注解 这一步骤可以省略

package com.erp.init.config.filter;

import com.alibaba.fastjson.JSONObject;
import com.erp.api.out.R;
import com.erp.api.out.ResultCode;
import com.erp.init.utils.WhlUtil;
import com.erp.init.wrapper.JsonParameterRequestWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.catalina.connector.RequestFacade;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.annotation.Order;
import org.springframework.util.StringUtils;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;



//@Component  删掉
@WebFilter(urlPatterns = {
    
    "/mall/*"}, filterName = "checkRequestFilter")
@Order(-100)
@Slf4j
public class CheckRequestFilter implements Filter {
    
    

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    
    
                  log.info("============== 验签开始 ============== ");
    }
    


}

第二步 在springboot启动类上添加 启动类上 加上
@ServletComponentScan(basePackages = {“com.aa.*”}) 这个注解
basePackages 这个属性 一般要写 要不 有可能扫不到 包

@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
@ServletComponentScan(basePackages = {
    
    "com.aa.*"})  //这个
@EnableDiscoveryClient
@ComponentScan(basePackages = {
    
    "com.aa.*"})
@EnableFeignClients(basePackages = {
    
     "com.aa.init.feign" })
public class BaseApplication {
    
    
    public static void main(String[] args) {
    
    
        SpringApplication.run(BaseApplication.class, args);
    }


}

这样配置的路径才会走 过滤器

猜你喜欢

转载自blog.csdn.net/Drug_/article/details/127261567