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 后,应用程序无法启动