【为什么要用 @param注解】
关于@param
这个注解在刚刚学习java的时候常会用到,但是为什么要用呢?
关于@param这个注解的作用:
有一种观点是使用@param可以和xml配置中的#{xxx} 对应,使用此注解后 ${}将无效,不过${}这种有sql注入的风险,现在用#{}才是主流(所以从这点上来看,所谓防sql注入并不是@param的功劳);
另外一种观点就是对传入参数的申明(声明),比如接口传入2个参数,其命名与SQL语句中的#{xxx}不一致,那么参数的传递过程就会中断,因为不知道哪个参数是sql需要的。
可能这才是@param的主要作用,尤其是当你用注解代替xml配置时(见下图,用注解代替xml大概就是这样子)
眼见为实
测试工具 :postman 本地测试:
@RequestMapping("public/v1/{organizationId}/users")
)
进行测试,大概三种情况:
控制层函数:
mapper.xml文件
① :不使用@param注解,传参为name和userName:发现是可以成功查询的
② :不使用@param,变更接口参数name为name2,会报错,发现获取不到name这个参数
③: 使用@param注解,接口参数依旧用②中的name2,发现可以正常查询到
总结:
总的来说,@param可以帮助接口传递参数给mapper文件,可以允许参数名有小小的不一致(但是我为什么要字段不一致来给自己找麻烦...);
另外缺点也比较明显,参数多的时候就不太好一个个加注解了,又臭又长(bushi),可以根据需求考虑用dto,vo来传递多个参数。所以,@param似乎并不是很重要。。(如果有我理解错的地方也可以评论告诉我,毕竟某也只是个萌新)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?