5.如何实现单例模式?
.拦截器应用场景
拦截器主要用于在请求到达 Controller 之前或响应返回之后做统一处理。常见应用场景有登录校验、权限校验、Token 校验、日志记录、接口耗时统计、防重复提交、限流、黑名单过滤等。比如在项目中,我们可以使用拦截器统一校验用户是否登录,如果未登录就直接返回错误信息,如果登录成功才放行到 Controller。
7.如何统一记录接口响应时间?
在项目中,我一般会通过 拦截器 统一记录接口响应时间。请求进入接口之前,在
preHandle中记录开始时间,请求结束后,在afterCompletion中获取结束时间,然后计算接口耗时。日志里通常会记录请求路径、请求方式、状态码、耗时、请求 IP 等信息。
如果需要统计某一层方法的执行时间,比如 Controller 或 Service 方法,也可以使用 AOP,通过
@Around环绕通知,在方法执行前后计算耗时。这样可以统一监控接口性能,帮助定位慢接口。
8.如何实现请求链路跟踪
9.如何避免多实例重复执行定时任务?(面试官提醒我分布式锁)
10.如果我很多定时任务的方法怎么办 可以使用代理类,在代理中把抢锁和释放锁的逻辑写好
11.如何优化Excel表的大量数据导入
12.那你如何调用MyBatis实现这个功能?
。 13.如何优化慢sql
14.explain主要看哪些数据 开始吟唱(终于顺一点了)