spring boot 配置Filter过滤器的两种方式

摘要:
Spring boot需要配置定制的过滤器来实现javax.servlet。过滤器接口demo1:添加组件注释packagecom.dayu。过滤到定制过滤器;导入组织弹簧框架文本注释。组件扫描;进口机构弹簧框架圆柱齿轮组件

springboot 配置 自定的 过滤器需要将自定义的过滤配实现 javax.servlet.Filter接口

 demo1:在自定义过滤器上添加组件注解

package com.dayu.filter;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Component;

import javax.servlet.*;
import java.io.IOException;
import java.util.Date;

/**
 * @author 大宇
 * Description 过滤器处理所有请求
 * 这里写两种配置方式:一种在myFilter类上加上@Component注解,
 * 另一种不添加这个注解,在config包下创建一个配置类config.WebConfig,通过配置Bean
 */
@Component
public class MyFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("MyFilter.init");
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("time filter start");
        long start = new Date().getTime();
        filterChain.doFilter(request,response);
        System.out.println(new Date().getTime()-start);
        System.out.println("time filter end");
    }

    @Override
    public void destroy() {
        System.out.println("MyFilter.destroy");
    }
}

第二种就是讲上面的注解去掉,在自定义config中用配置Bean的方式装配

package com.dayu.config;

import com.dayu.filter.MyFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.ArrayList;

/**
 * @author 大宇
 Configuration注解配置很重要
*/ @Configuration public class WebConfig { @Bean public FilterRegistrationBean timeFilter() { FilterRegistrationBean registrationBean = new FilterRegistrationBean(); MyFilter myFilter = new MyFilter(); registrationBean.setFilter(myFilter); ArrayList<String> urls = new ArrayList<>(); urls.add("/*");//配置过滤规则 registrationBean.setUrlPatterns(urls); return registrationBean; } }

免责声明:文章转载自《spring boot 配置Filter过滤器的两种方式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇git add 添加多个文件12. Unity3D中android端的返回键和选单键下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

spring的后置处理器——BeanPostProcessor以及spring的生命周期

后置处理器的调用时机 BeanPostProcessor是spring提供的接口,它有两个方法——postProcessBeforeInitialization、postProcessAfterInitialization。关于这两个方法的调用时机,可以参考spring源码注释。 /** * Apply this BeanPostProc...

Java 审计 之过滤器防御xss

Java 审计 之过滤器防御xss 0x00 前言 本文从攻击与防守两个角度来思考一些审计中的小细节。在前面两篇的xss审计中,写少了一个比较重要的点,就是Filter过滤器。都说Java的审计第一步就是先看web.xml,能看到该cms使用的是哪些框架来进行开发。其次就是看其有没有配置的一些过滤器。 审计文章: Java审计之XSS篇 Java 审计之x...

[SpringBoot] SpringApplication.run 执行流程

作者:王奕然链接:https://www.zhihu.com/question/21346206/answer/101789659来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。建议不要硬着头皮看spring代码,本身的代码800多m,就是不上班开始看也不知道什么时候看完。如果想学学ioc,控制反转这些建议看看jodd项目,...

Spring学习笔记(14)——SpEL

是什么 Spring表达式语言全称为“Spring Expression Language”,缩写为“SpEL”,类似于Struts2x中使用的OGNL表达式语言,能在运行时构建复杂表达式、存取对象图属性、对象方法调用等等,并能与Spring功能完美整合。 表达式语言给静态Java语言增加了动态功能。 SpEL是单独模块,只依赖于core模块,...

Struts 2.x仍然明显落后于时代。 Struts 2.x这一类老牌Web MVC开发框架仅能用于开发瘦客户端应用,无法用来开发对于交互体验要求更高的应用。

后来我在工作中陆续使用过Struts 1.x和Struts 2.x。我曾经把一个开源的基于Struts 1.x的自助式广告联盟应用移植到Spring MVC,还基于Struts 2.x做过网站开发。Struts 1.x的主要问题是框架的侵入性太大,不利于代码重用和单元测试。Struts 2.x确实进步很大,完全基于POJO,学习曲线低了很多,还支持零配置(...

Spring使用@Async注解

    本文讲述@Async注解,在Spring体系中的应用。本文仅说明@Async注解的应用规则,对于原理,调用逻辑,源码分析,暂不介绍。对于异步方法调用,从Spring3开始提供了@Async注解,该注解可以被标注在方法上,以便异步地调用该方法。调用者将在调用时立即返回,方法的实际执行将提交给Spring TaskExecutor的任务中,由指定的线程...