5-7 SpringBoot过滤器的使用

Posted 孤注一掷 、

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5-7 SpringBoot过滤器的使用相关的知识,希望对你有一定的参考价值。

配置过滤器,打印接口耗时。

新建如下:

 内容:

@Component
 public class LogFilter implements Filter 

     private static final Logger LOG = LoggerFactory.getLogger(LogFilter.class);

     @Override
     public void init(FilterConfig filterConfig) throws ServletException 

     

     @Override
     public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException 
         // 打印请求信息
         HttpServletRequest request = (HttpServletRequest) servletRequest;
         LOG.info("------------- LogFilter 开始 -------------");
         LOG.info("请求地址:  ", request.getRequestURL().toString(), request.getMethod());
         LOG.info("远程地址: ", request.getRemoteAddr());

         long startTime = System.currentTimeMillis();
         filterChain.doFilter(servletRequest, servletResponse);
         LOG.info("------------- LogFilter 结束 耗时: ms -------------", System.currentTimeMillis() - startTime);
     
 

过滤器是servlet的一个概念,servlet又是容器的一个概念,过滤器是给容器用的。

容器是我们经常听到的tomcat、netty这些。

如下是整个逻辑:

servlet是我们的请求,我们的请求接口会有request和response。

filterChain是过滤器的链,我们一个项目可能有多个过滤器,所以会有一个链,一个过滤器接一个过滤器。

注意上面的注解 @Component,Springboot会去扫描,容器就会拿到这个过滤器。

测试接口结果:

 

以上是关于5-7 SpringBoot过滤器的使用的主要内容,如果未能解决你的问题,请参考以下文章

基于Springboot搭建java项目(二十三)——SpringBoot使用过滤器拦截器和监听器

Spring Boot - 从 2.2.5 升级到 2.5.7 后,应用程序无法启动

SpringBoot——SpringBoot中使用过滤器Filter的两种方式

使用springboot怎么添加一个filter过滤器

SpringBoot中使用过滤器

springboot使用过滤器Filter