自定义拦截器|学习笔记

简介: 快速学习自定义拦截器

开发者学堂课程【SpringBoot 实战教程 自定义拦截器】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/651/detail/10791


自定义拦截器


内容介绍:

定义

二、案例

 

一、定义

有些时候需要自己配置 SpringMVC 而不是采用默认,springboot 都做了自动配置但是有些配置还是需要自己实现比如项目中常用的拦截器就应该根据自己的功能需要进行定义增加一个拦截器,这个时候就得通过继承 WebMvcConfigurerAdapter 然后重写父类中的方法进行扩展。

 

二、 案例

1、首先创建一个放拦截器的包命名为 com.qianfeng.interceptor

2、在这个下面创建一个拦截器命名为 myinterceptor注意它要继承 WebMvcConfigurerAdapter。

3、在父类中有个方法重写即可方法叫 addInterceptors

(InterceptorRegistry)写一个简单的输出功能返回 ture

@Configuration

public class MyInterceptor extends WebMvcConfigure rAdapter {

@override

public void addInterceptors (InterceptorRegistry registry) {

HandlerInterceptor handler Interceptor=new HandlerInterceptor () {

@Override

public boolean preHandle (HttpServletRequest arg0,

HttpServletResponse arg1, Object arg2) throws Excepfion {

System. out. println("自定义拦截器.....");

Return true;

}

@Override

public void postHandle (HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)

Throws Exception {

4、拦截器写好后需要注册在 springmac 中是在 xml 文件中进行注册即可并且指明拦截器所拦截的资源有一个参数叫 InterceptorRegistry 拦截器注册通过它进行注册把定义的拦截器添加进来注册进去后还需要指明拦截器所拦截资源的路径/**指拦截所有这个是在 springboot 中定义拦截器的方式继承 WebMvcConfigure rAdapter ,重写 addInterceptors,最后用这种方式进行拦截器的注册

5、用 @Configuration 声明这是一个配置MyInterceptor 可以被拦截器扫描到看一下启动程序,SpringBootApplication 注解有一个扫描的功能所以要让 springboot 扫描到这个拦截器应该指明它所在的包包名加进来这样可以扫描到拦截器

@SpringBootApplication (scanBasePackages={"com. qianfeng. controller", "com.qianfeng. interceptor" }

6、访问 controller应该先走拦截器拦截器里面输出一句话再 controller显示 hello,你好

@RequestMapping("/tt")

@ResponseBody

PublicString tests ( )

{

Return"hello, 你好";

}

7、启动controller 访问路径是 tt控制台里面打印了这个拦截器证明拦截器起作用了

image.png

相关文章
关于springboot配置文件未加载的问题解决办法
一般情况下springboot的项目的配置文件都是默认加载的properties文件和yaml文件,但是有时候因为一些其他的设置也会导致这些配置文件没有被加载
2734 0
关于springboot配置文件未加载的问题解决办法
|
9月前
|
机器学习/深度学习 存储 人工智能
淘天算法工程师玩转《黑神话》,多模态大模型如何成为天命AI
淘天集团未来生活实验室的算法工程师们以ARPG游戏《黑神话:悟空》为平台,探索多模态大模型(VLM)在仅需纯视觉输入和复杂动作输出场景中的能力边界。他们提出了一种名为VARP的新框架,该框架由动作规划系统和人类引导的轨迹系统组成,成功在90%的简单和中等难度战斗场景中取得胜利。研究展示了VLMs在传统上由强化学习主导的任务中的潜力,并提供了宝贵的人类操作数据集,为未来研究奠定了基础。
|
达摩院 调度
使用达摩院MindOpt优化交通调度_最大化通行量—线性规划问题
在数学规划中,网络流问题是指一类基于网络模型的流量分配问题。网络流问题的目标是在网络中分配资源,使得网络的流量满足一定的限制条件,并且使得某些目标函数最小或最大化。网络流问题通常涉及一个有向图,图中每个节点表示一个资源,每条边表示资源之间的关系。边上有一个容量值,表示该边上最多可以流动的资源数量。流量从源节点开始流出,经过一系列中间节点,最终到达汇节点。在这个过程中,需要遵守一定的流量守恒和容量限制条件。
|
Cloud Native
云原生训练营 -Week02
云原生训练营 -Week02
150 0
|
存储 安全 Java
Java内省(Introspector)机制:深入理解与应用
Java内省(Introspector)机制:深入理解与应用
|
XML Java 测试技术
Graalvm 替代 JVM 真的可以带来巨大的性能优势吗?
介绍 Spring Boot有助于轻松开发独立的、可用于生产的 Spring 应用程序。它对 Spring 平台和第三方库采用固执己见的方法:以最少的配置简化设置过程。优势: 易于使用:Spring Boot 简化了独立 Spring 应用程序的创建,无需复杂的配置。 嵌入式服务器:它允许直接嵌入 Tomcat、Jetty 或 Undertow 等服务器,从而无需单独部署 WAR 文件。 Starter 依赖项:Spring Boot 提供预配置的“starter”依赖项,降低了构建配置的复杂性。 自动配置:Spring Boot 自动配置 Spring 和第三方库,最大限度地减少手动设置工
|
存储 Java 数据库
Static关键字在Java中的多种用途解析
Static关键字在Java中的多种用途解析
|
Java 关系型数据库 MySQL
【mybatis-plus】自定义多数据源,动态切换数据源事务失效问题
【mybatis-plus】自定义多数据源,动态切换数据源事务失效问题
【mybatis-plus】自定义多数据源,动态切换数据源事务失效问题
|
Java 关系型数据库 MySQL
全网最实用的 IDEA Debug 调试技巧(超详细案例)
Debug 是程序员的开发神器,使用好了可以帮助我们非常高效的工作、学习、排查问题等。毫不客气的说,是决定我们进阶到更高层级的一个重要技能。 今天跟大家分享一下 IDEA 中 Debug 调试的各种奇技淫巧。
3440 0
全网最实用的 IDEA Debug 调试技巧(超详细案例)
|
Java
Java【付诸实践 04】Jar包class文件反编译、修改、重新编译打包方法(含反编译工具jd-gui-windows-1.6.6.zip百度云资源)
Java【付诸实践 04】Jar包class文件反编译、修改、重新编译打包方法(含反编译工具jd-gui-windows-1.6.6.zip百度云资源)
1799 0