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; } }
微信公众号
相关推荐
- APK在模拟器中无法使用笔记本自带的摄像头,该如何解决
- [请问]使用open C中的connect方法如何自动选择接入点
- jquery中$.ajax{}使用如何没反应
- shell 脚本总结 一、SHELL脚本是什么?它是必需的吗? 二、可以在SHELL脚本中使用哪些类型的变量? 三、SHELL脚本中“if”语法如何嵌套? 四、如何找出CPU消耗最大的进程,并从大到小进行排序? 五、如何持续ping百度的地址并将结果记录到日志?
- 使用tab control建立对话框,子对话框中的数据如何传入主对话框
- 如何删除WINDOWS中服务中不再使用的服务?
- thinkphp中如何使用phpspreadsheet插件 thinkphp中如何使用phpspreadsheet插件
- thinkphp中composer方式安装的插件如何使用 thinkphp中composer方式安装的插件如何使用
- c++Windows窗体应用程序中如何使用opencv。
- C++基础之volatile关键字 关键词 volatile修饰符 volatile的应用场景 volatile与编译器优化 volatile常见问题 嵌入式编程中volatile的作用 如何在多线程中使用好volatile 参考资料
- 树莓派 驱动leds-gpio.c 注册platform device
- ASP.NET 让无码编程不在是梦 -.NET通用平台、通用权限、易扩展、多语言、多平台架构框架 Landa.Best平台介绍 Landa.Best 页面配置演示 数据源配置 页面配置