目录
拦截器:是Spring框架提供的核心功能之一,主要用来拦截用户的请求,在指定方法前后,根据业务需要执行预先设定的代码:
数据结构面试:HashMap,ConcurrentHashMap,ThreadLocal要看(建议看源码)
网络:TCP,UDP,HTTP
并发编程:线程创建方式,线程的状态,锁,synchronized,volatile
数据库 基本操作,关键字,
JVM-内存结构,GC
Linux
引入拦截器的原因。
拦截器:是Spring框架提供的核心功能之一,主要用来拦截用户的请求,在指定方法前后,根据业务需要执行预先设定的代码:
(指定在哪些方法前后执行)
JDK17把之前Java的包都换为Jakarta。
指定方法:——指我们登录验证的某些方法(比如图书的增删改查),怎样可以不用动太多代码,实现这个功能
预先设定的代码:对用户是否登录进行验证
拦截器的实现分为两步:(作用维度以url为维度)
1.定义一个拦截器
2.把拦截器注册到项目中
自定义拦截器:实现HandlerInterceptor接口,并重写所有方法
拦截器的定义
自定义拦截器
/* 一级路径 能匹配/user,/book,/login,不能匹配/user/login
/** 任意级路径 能匹配 /user,/user/login,/book
/book/* /book下的一级路径 能匹配/book/addBook,不能匹配/book/addBook
/book/** /book下的任意级路径 能匹配/book,/book/addBook,/book/addBook/2...。
正常工作方式
用户调用->(拦截器)->控制器层(Controller)->调用服务层(Service)->数据持久层(Mapper)->数据库
1.添加拦截器后, 执⾏Controller的⽅法之前, 请求会先被拦截器拦截住. 执⾏ preHandle() ⽅法,
这个⽅法需要返回⼀个布尔类型的值. 如果返回true, 就表⽰放⾏本次操作, 继续访问controller中的
⽅法. 如果返回false,则不会放⾏(controller中的⽅法也不会