java - RequestMapping 适用于私有方法
问题描述
现在,总的来说,我的理解是 @RequestMapping 方法需要公开。他们也可以是私人的吗?如果是这样,我们什么时候使用它?
我问这个的原因是我注意到@RequestMapping 也适用于私有方法。为什么会这样?
是不是因为spring通过反射访问这些方法,所以没有真正考虑访问修饰符?这是一个错误还是一个有用的功能?
解决方案
现在,真正的原因(如果存在的话)很难在没有进入 Spring 开发人员的头脑的情况下说出,因为这是很久以前实现的。
我猜这是一个疏忽,因为使用私有方法作为请求映射的目标并没有显着优势。当然,你不能再从你的其他代码中调用它们,但是如果你从你的代码中调用控制器方法,你应该得到所有的问题。
此链接描述了一个有趣的情况,其中请求映射适用于包私有方法,但由于 AOP 仅适用于公共方法,结果是混乱和破坏。还有 4 个(四个!)的地方可以应用修复来防止非公共方法成为@RequestMapping
.
所以我会将其归类为(次要)错误。现在由程序员保持警惕并记住将这些方法公开。我会看看我是否能找到一个现有的错误票。
推荐阅读
- java - apache-poi excel生成:多张纸上的不同图像大小
- python - 在使用 python 3 托管在谷歌云上的烧瓶网站中显示来自谷歌云存储的图像
- pandas - 如何产生熊猫数据框行来激发数据框
- r - R 和 Lapply 导入 excel 文档但忽略一些格式不正确的文档
- swift - Mirror.Child 标签何时为零?
- reactjs - 创建新的反应本机应用程序时出错
- here-api - 如何为行人路线启用高速公路?
- javascript - JQuery .autocomplete() 选择事件仅在小部件失去焦点时触发
- javascript - 如何根据亮度和对比度调整给定颜色,从而使颜色变暗/变亮?
- apple-watch - watchOS 应用程序在主屏幕上使用的应用程序图标与在应用程序切换器中使用的应用程序图标不同