网站首页 > 开源技术 正文
如何让我们在SpringBoot中定义的切面在最后执行?如何让我们的拦截器顺序排到最后执行?看似简单的问题,实际上有一定的技巧,让我们一起来看看视频最后的解答吧。
考虑一个场景,我们需要实现一个开源的工具包,对所有SpringBoot的RESTful API接口进行切面处理,并判断返回结果。如果返回结果包含code属性,且code属性值为203,则发出告警通知。由于工具类的实现必须严谨,我们需要确保切面在业务定义的切面都处理之后再执行。
处理这个问题时,有些人可能会想到在切面列上添加Order注解,但遗憾的是,Order注解默认值为Integer的最大值,无法将切面顺序向后移动。此外,当@Order值大小相同时,Spring会按照类的名称字典顺序开始执行。
因此,我们可以使用最大的Z字母开头的切面类。但是,如果业务也定义了一个以ZZ开头的切面,那么业务定义的切面就会在工具类之后执行,这并不符合要求。因此,我们需要回顾一下Java的命名规范,即字母下划线、美元符号和数字开头。
在Java中,标识符大小写敏感,长度无限制。经过比较,我们发现下划线是最大的,因此我们可以使用以下划线开头的奇怪字母作为工具类的名称。前提是业务定义的切面不要以下划线开头。
如果您有更好的解决方案,请在评论区留言。如果没有,请记得点赞、收藏!
猜你喜欢
- 2025-07-24 十大经典排序算法-堆排序,计数排序,桶排序,基数排序
- 2025-07-24 halcon select_shape算子(halcon算子中文手册)
- 2025-07-24 100个Java工具类之1:多种集合类型实现排序功能
- 2025-07-24 怎么求第K大的数,topK 问题(快排的应用)java
- 2025-07-24 Java 最细的集合类总结(java集合有那些)
- 2025-07-24 低成本高性能AI开发神器!极摩客EVO-X2桌面Mini AI工作站深度评测
- 2025-07-24 吊打面试官(十五)--Java语言中HashMap类一文全掌握
- 2025-07-24 用动态规划怎么求最大子序列和打家劫舍问题Java
- 2025-07-24 线程池最佳线程数量到底要如何配置?
- 2025-07-24 Java泛型详解,通俗易懂只需5分钟
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)