【为什么要⽤@param注解】
关于@param
这个注解在刚刚学习java的时候常会⽤到,但是为什么要⽤呢?
关于@param这个注解的作⽤:
有⼀种观点是使⽤@param可以和xml配置中的#{xxx} 对应,使⽤此注解后${}将⽆效,不过${}这种有sql注⼊的风险,现在⽤#{}才是主流(所以从这点上来看,所谓防sql注⼊并不是@param的功劳);
另外⼀种观点就是对传⼊参数的申明(声明),⽐如接⼝传⼊2个参数,其命名与SQL语句中的#{xxx}不⼀致,那么参数的传递过程就会中断,因为不知道哪个参数是sql需要的。
可能这才是@param的主要作⽤,尤其是当你⽤注解代替xml配置时(见下图,⽤注解代替xml⼤概就是这样⼦)
眼见为实
测试⼯具:postman 本地测试(控制类注解改⼀下就可以,加个public:
@RequestMapping("public/v1/{organizationId}/users")
)
进⾏测试,⼤概三种情况:
控制层函数:
①:不使⽤@param注解,传参为name和userName:发现是可以成功查询的
②:不使⽤@param,变更接⼝参数name为name2,会报错,发现获取不到name这个参数
③:使⽤@param注解,接⼝参数依旧⽤②中的name2,发现可以正常查询到
总结:
总的来说,@param可以帮助接⼝传递参数给mapper⽂件,可以允许参数名有⼩⼩的不⼀致(但是
我为什么要字段不⼀致来给⾃⼰⿇烦...);
另外缺点也⽐较明显,参数多的时候就不太好⼀个个加注解了,⼜臭⼜长(bushi),可以根据需求考虑⽤dto,vo来传递多个参数。所以,@param似乎并不是很重要。。
(如果有我理解错的地⽅也可以评论告诉我,毕竟某也只是个萌新)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论