zoukankan      html  css  js  c++  java
  • 玩转 SpringBoot 2 快速整合 Filter

    概述

    SpringBoot 中没有 web.xml, 我们无法按照原来的方式在 web.xml 中配置 Filter 。但是我们可以通过 JavaConfig(@Configuration +@Bean)方式进行配置。通过FilterRegistrationBean 将自定义 Filter 添加到 SpringBoot 的过滤链中。

    实战操作

    实战操作通过定义一个拦截所有访问项目的URL的 Filter来进行演示的。

    首先定义一个统一访问 URL 拦截的 Filter。代码如下:

    public class UrlFilter implements Filter {
    	private Logger log =  LoggerFactory.getLogger(UrlFilter.class);
     
    	@Override
    	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    			throws IOException, ServletException {
    	HttpServletRequest httpServletRequest = (HttpServletRequest) request;
    		String requestURI = httpServletRequest.getRequestURI();
    		StringBuffer requestURL = httpServletRequest.getRequestURL();
    		log.info("requestURI:" +requestURI+" "+"requestURL:"+requestURL);
    		chain.doFilter(httpServletRequest, response);
    	}
     
    }
    

    通过 javaConfig方式配置 SpringBoot 过滤链类 FilterRegistrationBean,具体代码如下:

    @Configuration
    public class FilterConfig {
    	@Bean
    	public FilterRegistrationBean filterRegistration() {
    		FilterRegistrationBean registration = new FilterRegistrationBean();
    		registration.setFilter(new UrlFilter());
    		List<String> urlList = new ArrayList<String>();
    	    urlList.add("/*");
    	    registration.setUrlPatterns(urlList);
    		registration.setName("UrlFilter");
    		registration.setOrder(1);
    		return registration;
    	}
    }
    

    FilterRegistrationBean 中方法介绍:

    registration.setFilter(Filter filter):设置我们自定义Filter对象。

    registration.setUrlPatterns(Collection urlPatterns):设置自定义Filter需要拦截的URL的集合。

    registration.setName(String name): 设置自定义Filter名称。

    registration.setOrder(int order):设置自定义Filter拦截顺序。

    测试

    启动 SpirngBoot 项目并通过游览器访问我们的项目下的 index.html。
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    本地计算机 上的 Redis Server 服务启动后停止
    RabbitMQ 命令行
    mysql ORDER BY 中文出现错误问题
    使用javascript纯前端导出excel
    软件测试概念学习
    excel控件只为简单写入数据表--github找到ExcelUtil笔记
    快速创建Spring web项目
    PQGrid商业化的表格组件
    mybatis传入参数为0被误认为是空字符串的解决方法
    MyBatis like报错
  • 原文地址:https://www.cnblogs.com/jerry126/p/11460247.html
Copyright © 2011-2022 走看看