zoukankan      html  css  js  c++  java
  • 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;
    
    }
    
    }

    微信公众号

                              
  • 相关阅读:
    AX ERROR: Could not find my mock parent, most likely I am stale 不及格的程序员
    利用Segue在视图控制器间传值的问题 不及格的程序员
    Creating a Singleton Instance 不及格的程序员
    iPad 通知 UIKeyboardWillShowNotification 不会在keyBoard处在Undock状态下接到通知 不及格的程序员
    Why RootViewController's view is rotated Automatically by System when the app first loaded? 不及格的程序员
    如何弹出UIDatePicker最好 不及格的程序员
    jQuery开始做恶了 不及格的程序员
    what is the SEL,id and IMP,Class ,Method? 不及格的程序员
    Objectivec 字符串比较的陷井 不及格的程序员
    Unable to create any keyboard shortcuts after the iOS 6.1.3 update on iPad. 不及格的程序员
  • 原文地址:https://www.cnblogs.com/niugang0920/p/12196823.html
Copyright © 2011-2022 走看看