一、使用注解
1. 假设Filter类的路径为com.sanro.filter

@Slf4j
@WebFilter(filterName = "authFilter", urlPatterns = "/*")
@Order(1) //测试好像这个参数不生效,实际生效的是Filter扫描到的顺序(所以起名很重要)
public class AuthFilter implements Filter {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {log.debug("start to auth request validate...111");HttpServletRequest req = (HttpServletRequest) request;String token = req.getHeader("token");if (token != null) {//    :TODO check tokenlog.info("auth success");chain.doFilter(request, response);} else {log.err("auth failed");}}
}

2. 自动扫描配置如下

@Slf4j
@EnableScheduling
@ServletComponentScan(basePackages = {"com.sanro.filter"}) //这一句完成了配置,Springboot的”懒理念“真的厉害。
@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);log.debug("rest server start success.");}
}

二、手动配置

1. Filter类

@Slf4j
@Component
public class AuthFilter implements Filter {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {log.debug("start to auth request validate...111");HttpServletRequest req = (HttpServletRequest) request;String token = req.getHeader("token");if (token != null) {//    :TODO check tokenlog.info("auth success");chain.doFilter(request, response);} else {log.err("auth failed");}}
}

2. Filter配置类

@Configuration
public class FilterConfig {@Autowiredprivate AuthFilter authFilter;@Beanpublic FilterRegistrationBean registerAuthFilter() {FilterRegistrationBean registration = new FilterRegistrationBean();registration.setFilter(authFilter);registration.addUrlPatterns("/*");registration.setName("authFilter");registration.setOrder(1);  //值越小,Filter越靠前。return registration;}//如果有多个Filter,再写一个public FilterRegistrationBean registerOtherFilter(){...}即可。
}

转载于:https://www.cnblogs.com/yoyotl/p/10853499.html

springboot配置Filter的两种方法相关推荐

  1. java手动注册filter,SpringBoot注册Filter的两种实现方式

    springboot版本:2.2.5 一.filter注册 springboot中添加filter有两种方式: 1.实现方法一 2.实现方法二 二.Springboot自带filter Springb ...

  2. 路由删除命令_清除思科路由器配置信息的两种方法

    对于网络设备来说,清除思科路由器配置信息是防止黑客轻松地连接访问公司网络的最佳方法.在对Cisco路由器进行清理时,有两种不同的方法可供选择,而它们通常用于不同的方面: 一.知道路由器的密码,相关步骤 ...

  3. SpringBoot配置绑定的两种方式

    SpringBoot配置绑定的两种方式 演示文件 bean public class Student {private String name;private Integer age;public S ...

  4. 最新阿里云服务器免费SSL证书配置HTTPS的两种方法(图文教程二)

    在大家学习如何利用免费SSL证书配置网站HTTPS之前,我们先要搞清楚为什么要开启HTTPS,这个绿色的小锁真的有用吗?所谓的HTTPS其实是(安全套接字层超文本传输协议)是以安全为目标的HTTP通道 ...

  5. SpringBoot - 配置 Filter 的几种方式

    前言 在 SpringMVC - 对于如何配置 Filter 的深度剖析 这篇文章中,我们知道了在 SpringMVC 环境中如何配置 Filter,接下来我们看一下如何在 SpringBoot 中配 ...

  6. 【短信发送】实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现

    实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现 一.开通腾讯云短信服务 二.工具类--使用qcloudsms实现短信发送 三.Spring Boot项目引入短信发送功能 我们发 ...

  7. 详解mybatis的配置setMapperLocations多个路径两种方法

    文章目录 一.配置文件方式 二.Javabean配置 前言:我们在平常工作中用到mybatis去加载Mapper.xml文件,可能mapper文件放的路径不一样,由此我们需要配置多个路径,幸运的是My ...

  8. Java书签 #MyBatis之setMapperLocations配置多个mapper路径的两种方法详解

    楔子:通向幸福的路很多,没有一条叫欲望.- 宫部美雪<火车> 1.今日书签 SpringBoot 集成 MyBatis 的项目中,怎么使用 sqlSessionFactoryBean.se ...

  9. windows下tomcat集群配置(两种方法)

    两种方法只是在配置上不同原理一样,因为apache2.X后其自身集成了mod_jk功能,相对于1.3版本,不需要再进行繁琐的worker.properties配置,配置过程大幅简化. 一.软件需求 操 ...

最新文章

  1. Go 学习笔记(11)— 切片定义、切片初始化、数组和切片差异、字符串和切片转换、len()、cap()、空 nil 切片、append()、copy() 函数、删除切片元素
  2. RHCE课程-RH131Linux管理笔记八-安装和管理XEN虚拟机
  3. 系列文章|OKR与敏捷(三):赋予团队自主权
  4. 因主机名更改造成oracle控制台登录错误:ora-12545,ora-12541
  5. python爬火车票_python爬取12306火车余票程序(一)
  6. 1623: 街道路径条数
  7. VS2013提示错误应输入表达式
  8. java jvisualvm linux,从Linux JDK中发出jvisualvm时出现乱码
  9. Windows平台下MySQL常用操作与命令
  10. 两款强大的PC优化工具推荐,CleanMyPc与Memreduct
  11. 多元相关与回归分析及R使用
  12. 【SpringMVC】编程式事务控制,基于 XML 的声明式事务控制,基于注解的声明式事务控制
  13. Tensorflow入门笔记——tf.app.flags.FLAGS用法介绍
  14. 视频播放器 layui-ckplayer
  15. 解决“vmware15虚拟机启动造成win10黑屏或自动注销“问题
  16. jude(java建模软件)_JUDE电脑版下载|
  17. 高级算法梳理之LightGBM
  18. vue网页预加载页面_页面预加载效果
  19. 微信消息延迟怎么办?
  20. pg_pathman实例

热门文章

  1. boost::mp11::mp_less相关用法的测试程序
  2. boost::log模块实现从设置文件初始化库的示例
  3. boost::hana::permutations用法的测试程序
  4. boost::geometry模块变换多边形的测试程序
  5. GDCM:Traverse Modules的测试程序
  6. DCMTK:解压缩DICOM文件
  7. VTK:相互作用之SelectAnActor
  8. VTK:图表之SelectedVerticesAndEdges
  9. OpenGL pointsprites点精灵的实例
  10. QT的QQmlPropertyMap类的使用