@PublicMapping与WebMvcConfigurer中配置excludePathPatterns效果对比

在SpringBoot项目中,针对某个web接口,如果不想进行token校验,可以多种实现方式,这里比对其中的两种。

@PublicMapping 和 WebMvcConfigurer 中的 excludePathPatterns 都可以实现不进行 token 校验的效果,但它们的实现方式和应用场景有所不同:

相似点
两者都能使特定接口绕过身份验证(如 token 校验),都是用于标识或配置不需要安全验证的公共接口

不同点
(1)实现层级不同:

@PublicMapping 是注解级别的控制,直接在控制器方法上声明

excludePathPatterns 是配置级别的控制,在全局配置类中集中管理

(2)灵活性不同:

@PublicMapping 更灵活,可以精确到单个方法

excludePathPatterns 需要维护路径列表,适合批量排除

(3)关注点分离:

@PublicMapping 与业务代码在一起,更直观

excludePathPatterns 将安全配置集中管理,更符合配置与业务分离原则

最佳实践
对于少量明确的公共接口,使用 @PublicMapping 更简洁

对于大量公共接口或需要动态配置的情况,使用 excludePathPatterns 更合适

也可以两者结合使用,@PublicMapping 用于业务层标记,excludePathPatterns 用于框架层配置

两者最终效果在"不进行token校验"这一点上是相同的,只是实现方式不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值