【為什么要用 @param注解】


 關於@param

 這個注解在剛剛學習java的時候常會用到,但是為什么要用呢?

關於@param這個注解的作用:

有一種觀點是使用@param可以和xml配置中的#{xxx} 對應,使用此注解后 ${}將無效,不過${}這種有sql注入的風險,現在用#{}才是主流(所以從這點上來看,所謂防sql注入並不是@param的功勞);

另外一種觀點就是對傳入參數的申明(聲明),比如接口傳入2個參數,其命名與SQL語句中的#{xxx}不一致,那么參數的傳遞過程就會中斷,因為不知道哪個參數是sql需要的。

可能這才是@param的主要作用,尤其是當你用注解代替xml配置時(見下圖,用注解代替xml大概就是這樣子)

 

 

眼見為實

  測試工具 :postman 本地測試(控制類注解改一下就可以,加個public:

  @RequestMapping("public/v1/{organizationId}/users")

  進行測試,大概三種情況:

控制層函數:

 

mapper.xml文件

 

 

① :不使用@param注解,傳參為name和userName:發現是可以成功查詢的

 

 

 

② :不使用@param,變更接口參數name為name2,會報錯,發現獲取不到name這個參數

 

 

 

③: 使用@param注解,接口參數依舊用②中的name2,發現可以正常查詢到

 

 

 

總結:

 

  總的來說,@param可以幫助接口傳遞參數給mapper文件,可以允許參數名有小小的不一致(但是我為什么要字段不一致來給自己找麻煩...);

另外缺點也比較明顯,參數多的時候就不太好一個個加注解了,又臭又長(bushi),可以根據需求考慮用dto,vo來傳遞多個參數。所以,@param似乎並不是很重要。。(如果有我理解錯的地方也可以評論告訴我,畢竟某也只是個萌新)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM