• 10.Spring-Boot中如何使用filter(过滤器)


    在springboot中如何使用filter(过滤器),其实这个现实可以用aop来实现。

    1.定义LogFilter.java

    package com.niugang.filter;
    
    import java.io.IOException;
    
    import javax.servlet.Filter;
    
    import javax.servlet.FilterChain;
    
    import javax.servlet.FilterConfig;
    
    import javax.servlet.ServletException;
    
    import javax.servlet.ServletRequest;
    
    import javax.servlet.ServletResponse;
    
    import javax.servlet.http.HttpServletRequest;
    
    import javax.servlet.http.HttpServletResponse;
    
    
    
    import org.slf4j.Logger;
    
    import org.slf4j.LoggerFactory;
    
    
    
    /**
    
    * 记录日志的filter
    
    * @author niugang
    
    *
    
    */
    
    public class LogFilter implements Filter {
    
    private static Logger logger = LoggerFactory.getLogger(LogFilter.class);
    
    @Override
    
    public void init(FilterConfig filterConfig) throws ServletException {
    
    logger.info("初始化filter");
    
    
    
    }
    
    
    
    @Override
    
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    
    throws IOException, ServletException {
    
    HttpServletRequest req =(HttpServletRequest)request;
    
    HttpServletResponse resp =(HttpServletResponse)response;
    
    logger.info("执行filter................");
    
    chain.doFilter(req, resp);
    
    
    
    }
    
    
    
    @Override
    
    public void destroy() {
    
    logger.info("filter被销毁");
    
    }
    
    
    
    }
    
    package com.niugang.filter;
    
    import java.io.IOException;
    
    import javax.servlet.Filter;
    
    import javax.servlet.FilterChain;
    
    import javax.servlet.FilterConfig;
    
    import javax.servlet.ServletException;
    
    import javax.servlet.ServletRequest;
    
    import javax.servlet.ServletResponse;
    
    import javax.servlet.http.HttpServletRequest;
    
    import javax.servlet.http.HttpServletResponse;
    
    
    
    import org.slf4j.Logger;
    
    import org.slf4j.LoggerFactory;
    
    
    
    /**
    
    * 记录日志的filter
    
    * @author niugang
    
    *
    
    */
    
    public class LogFilter implements Filter {
    
    private static Logger logger = LoggerFactory.getLogger(LogFilter.class);
    
    @Override
    
    public void init(FilterConfig filterConfig) throws ServletException {
    
    logger.info("初始化filter");
    
    
    
    }
    
    
    
    @Override
    
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    
    throws IOException, ServletException {
    
    HttpServletRequest req =(HttpServletRequest)request;
    
    HttpServletResponse resp =(HttpServletResponse)response;
    
    logger.info("执行filter................");
    
    chain.doFilter(req, resp);
    
    
    
    }
    
    
    
    @Override
    
    public void destroy() {
    
    logger.info("filter被销毁");
    
    }
    
    
    
    }

    2.配置filter

    FilterConfig.java

    package com.niugang;
    
    import org.springframework.boot.web.servlet.FilterRegistrationBean;
    
    import org.springframework.context.annotation.Bean;
    
    import org.springframework.context.annotation.Configuration;
    
    import com.niugang.filter.LogFilter;
    
    
    
    /**
    
    * 过滤器配置文件
    
    * @author niugang
    
    *springboot启动类虎自动扫描过滤器配置文件
    
    */
    
    @Configuration
    
    public class FilterConfig {
    
    /**
    
    * z自定义过滤器
    
    * @return
    
    */
    
    @Bean
    
    public LogFilter logFilter() {
    
    return new LogFilter();
    
    }
    
    /**
    
    * 注册过滤器
    
    * @return
    
    */
    
    @Bean
    
    public FilterRegistrationBean testFilterRegistration() {
    
    FilterRegistrationBean registration = new FilterRegistrationBean();
    
    registration.setFilter(logFilter());
    
    registration.addUrlPatterns("/*");
    
    registration.setOrder(1);
    
    return registration;
    
    }
    
    }

    微信公众号

                              
  • 相关阅读:
    基于Linux平台的自动化运维Devops-----之自动化系统部署
    Centos7.1 mini版安装后安装图形界面教程
    python包管理之Pip安装及使用-1
    maven中jar、war、pom的区别
    黄焖鸡
    django-celery配置
    文档编写注意事项
    java时间处理,获取当前时间的小时,天,本周周几,本周周一的日期,本月一号的日期
    flink连接hbase方法及遇到的问题
    pycharm远程debug(内网环境,跳板机)
  • 原文地址:https://www.cnblogs.com/niugang0920/p/12196823.html
Copyright © 2020-2023  润新知