亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

@Resource注解,寫在filed上和setter上的區別?哪種更為推薦?

@Resource注解,寫在filed上和setter上的區別?哪種更為推薦?

慕婉清6462132 2018-07-23 07:18:21
查看@Resource的源碼,不難發現它可以被用在class、field和method上(在此不討論寫在class上的情況),那么寫在field和setter上的區別是什么呢?只是可讀性和簡潔明了么,請問下哪種更為推薦呢?
查看完整描述

2 回答

?
慕雪6442864

TA貢獻1812條經驗 獲得超5個贊

這個是有歷史淵源的,一開始的設計只支持一種,后來慢慢支持多種,具體的使用上最好跟公司整體的代碼規范統一就行


查看完整回答
反對 回復 2018-08-12
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

這么說吧,注解如果寫在屬性上,那么底層操作是:發現該屬性有該注解,然后獲取注解的name,找到對應name的實體,如果沒有name則根據類型來設置值。然后找到該屬性對應的setter方法,然后將調用setter將對應的值傳入進去。
如果直接寫到setter方法上,那么也是同樣的操作,但不同地方在于,寫在屬性上就多了一步找到setter方法的操作,寫在setter上則少了這一步操作,這是個優化項。
對于性能來說,其實消耗不是很大,如果不是巨量操作的服務,一般的應用和服務都建議寫在field上,因為方便維護和查看,因為本身對性能的影響微乎其微。
如果是巨量操作次數的系統,比如淘寶,那么強烈建議寫在setter上,具體的你可以自己寫demo,循環執行一億次,或者10億次,就能看出比較明顯的區別了,但是你也會發現,1億次的操作其實也差不了多少。


查看完整回答
反對 回復 2018-08-12
  • 2 回答
  • 0 關注
  • 878 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號