此博客是学习Spring Boot过程中记录的,一来为了加深自己的理解,二来也希望这篇博客能帮到有需要的朋友.同时如果有错误,希望各位不吝指教

一.通过注入Bean的方式配置Filter:

  注意:此方法所在的类一定要添加了@Configuration注解,或者是直接放在主类

@Bean
public FilterRegistrationBean<Filter> myFilter(){
   //用于注册Filter
FilterRegistrationBean<Filter> filter = new FilterRegistrationBean<>();
//new的是自己自定义的Filter
filter.setFilter(new MyFilter());
   //设置此过滤器的执行顺序的优先级,越小优先级越高
filter.serOrder(1);
return filter;
}

  自定义Filter类,实现javax.servlet.Filter:

  

public class MyFilter implements Filter {

    public static final List<String> EXCLUSIONS_PATH = Arrays.asList("*.js","*.css","/druid/*");

    @Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest;
String uri = request.getRequestURI();
if (EXCLUSIONS_PATH.contains(uri)){
filterChain.doFilter(servletRequest,servletResponse);
} else{
System.err.println(uri + "被拦截");
}
}
}

二:通过注解配置Filter

  自定义的Filter类:

//声明这是一个Filter类
@WebFilter(filterName = "myFilter",urlPatterns = "/*")
//配置过滤器的优先级
@Order(1)
public class MyFilter implements Filter { public static final List<String> EXCLUSIONS_PATH = Arrays.asList("*.js","*.css","/druid/*"); @Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest;
String uri = request.getRequestURI();
if (EXCLUSIONS_PATH.contains(uri)){
filterChain.doFilter(servletRequest,servletResponse);
} else{
System.err.println(uri + "被拦截");
} }
}

  主类添加注解:@ServletCompontScan

@SpringBootApplication
//可以不指定包,会扫描全部的包会扫描添加了@WebServlet、@WebFilter、@WebListener注解的类,并注册的Spring容器
@ServletComponentScan(basePackages = {"com.cjx.filter"})
public class SpringbootApplication { public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
} }

                  

            

                                                     ------路漫漫其修远兮,吾将上下而求索.愿你我共勉

  

Spring Boot配置Filter的更多相关文章

  1. Spring Boot配置过滤器的两种方式

    过滤器(Filter)是Servlet中常用的技术,可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截,常用的场景有登录校验.权限控制.敏感词过滤等,下面介绍下Spring Boot配置过 ...

  2. spring boot配置druid连接池连接mysql

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  3. Spring Boot -- 配置切换指南

    一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一 ...

  4. Spring Boot 配置优先级顺序

    一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一 ...

  5. spring boot 配置注入

    spring boot配置注入有变量方式和类方式(参见:<spring boot 自定义配置属性的各种方式>),变量中又要注意静态变量的注入(参见:spring boot 给静态变量注入值 ...

  6. Spring boot配置多个Redis数据源操作实例

    原文:https://www.jianshu.com/p/c79b65b253fa Spring boot配置多个Redis数据源操作实例 在SpringBoot是项目中整合了两个Redis的操作实例 ...

  7. spring boot配置springMVC拦截器

    spring boot通过配置springMVC拦截器 配置拦截器比较简单, spring boot配置拦截器, 重写preHandle方法. 1.配置拦截器: 2重写方法 这样就实现了拦截器. 其中 ...

  8. spring boot配置mybatis和事务管理

    spring boot配置mybatis和事务管理 一.spring boot与mybatis的配置 1.首先,spring boot 配置mybatis需要的全部依赖如下: <!-- Spri ...

  9. [转] Spring Boot配置多个DataSource

    [From]  https://www.liaoxuefeng.com/article/001484212576147b1f07dc0ab9147a1a97662a0bd270c20000 Sprin ...

随机推荐

  1. linux patch中的p0和p1的区别

    命令patch的主要作用是生成diff文件和应用diff文件.举个例子来讲,当发现某个程序出现bug需要打补丁时,patch便是一个好工具. diff文件头: [root@localhost kern ...

  2. 【备忘】ffmpeg推流命令

    1 组播推流 ffmpeg -re -i "D:\\OTT\\adghg2323.mp4" -vcodec libx264 -vprofile baseline -level 30 ...

  3. 5.1-5 uname、hostname、dmesg、stat、du

    5.1 uname:显示系统信息     uname命令用于显示系统相关信息,比如内核版本号.硬件架构等. -a    显示系统所有相关信息 -v    显示内核版本 -m    显示计算机硬件架构 ...

  4. easyui datagrid 自定义单元格单击与双击事件(Day_38)

    $(function(){ $('#tableId').datagrid({//单击事件   onClickRow:function(rowIndex,rowData){  alert("单 ...

  5. 在.NET 6中使用DateOnly和TimeOnly

    千呼万唤始出来 在.NET 6(preview 4)中引入了两个期待已久的类型,将作为核心库的一部分.DateOnly和TimeOnly允许开发人员表示DateTime的日期或时间部分.这两个类型为值 ...

  6. Spring Mvc Long类型精度丢失

    背景 在使用Spring Boot Mvc的项目中,使用Long类型作为id的类型,但是当前端使用Number类型接收Long类型数据时,由于前端精度问题,会导致Long类型数据转换为Number类型 ...

  7. Octave Convolution卷积

    Octave Convolution卷积 MXNet implementation 实现for: Drop an Octave: Reducing Spatial Redundancy in Conv ...

  8. A100计算能力

    A100计算能力 A100 GPU支持新的计算功能8.0.表1比较了NVIDIA GPU架构的不同计算功能的参数. 表1.计算能力:GP100 vs. GV100 vs. GA100. MIG架构 尽 ...

  9. Tesla T4视频编码性能分析

    Tesla T4视频编码性能分析 从开普勒开始的所有 NVIDIA GPUs 都支持完全加速的硬件视频编码: GPUs 支持完全加速的硬件视频解码.最近发布的图灵硬件提供了张量核心和更好的机器学习性能 ...

  10. CAP 超详细名词解释

    目录 引言 概述 分布式 一致性 ACID中的一致性 可用性 分区容错性 可用性与分区容错性,傻傻分不清 问题1:分区容错性说分区故障正常工作,什么叫正常工作?这个正常工作是指满足可用性吗? 问题2: ...