在 Spring 中,提供了三種依賴注入(也被稱之為 "對象注入","屬性裝配"等)的方式,這篇博客我們來分析一下這三種方式各有哪些優缺點。
一、屬性注入
優點
簡潔,使用方便。
缺點
? 只能用于 IoC 容器,如果是非?IoC 容器不可用,并且只有在使用的時候才會出現 NPE(空指
針異常);
? 不能注入?個 Final 修飾的屬性。
二、構造函數注入
此方式推薦 Spring 4.X 進行使用
優點
? 可以注入 final 修飾的屬性;
? 注入的對象不會被修改;
? 依賴對象在使用前,一定會被完全初始化,因為依賴是在類的構造方法中執行的,而構造方法
是在類加載階段就會執行的方法;
? 通用性好, 構造方法是 JDK 支持的, 所以更換任何框架,他都是適用的。
缺點
? 注入多個對象時, 代碼會比較繁瑣。
三、Setter注入
此方式推薦 Spring 3.X進行使用
優點
方便在類實例之后, 重新對該對象進行配置或者注?
缺點
? 不能注入?個 Final 修飾的屬性
? 注入對象可能會被改變, 因為 setter 方法可能會被多次調?, 就有被修改的風險。