1 回答
已采納

大咪
TA貢獻785條經驗 獲得超332個贊
相比而言設置注入具有以下優點: ???????????????????1)與傳統的JavaBean的寫法更相似,程序開發人員更容易理解、接受。 ???????????????????通過setter方法設定依賴關系顯得更加直觀、自然。 ???????????????????2)對于復雜的依賴關系,如果采用構造注入,會導致構造器過于臃腫,難以閱讀。 ???????????????????Spring在創建Bean實例時,需要同時實例化其依賴的全部實例,因而導致性能下降。 ???????????????????而是用設置注入可以避免這些問題。 ???????????????????3)尤其在某些屬性可選的情況下,多參數的構造器更加笨重。 某些情況下,構造注入的優勢: ???????????????????1)構造注入可以再構造器中決定依賴關系的注入順序,有限依賴的優先注入。 ???????????????????例如,組件中其它依賴關系的注入,常常需要依賴于Datasource的注入。 ???????????????????采用構造注入,可以在代碼中清晰地決定注入順序。 ???????????????????2)對于依賴關系無需變化的Bean,構造注入更加有用。 ???????????????????因為沒有setter方法,所有的依賴關系全部在構造器內設定。 ???????????????????因此,無需擔心后續代碼對依賴關系的破壞。 ???????????????????3)依賴關系只能在構造器中設定,則只有組建的創建者才能改變組建的依賴關系。 ???????????????????隊組建的調用者而言,組件內部的依賴關系完全透明,更符合高內聚的原則。 建議:采用設置注入為主,構造注入為輔的注入策略。對于依賴關系無需變化的注入,盡量采用構造注入; 而其它的依賴關系的注入,則考慮設值注入。
添加回答
舉報
0/150
提交
取消