依賴注入(dependency injection,簡稱di)意思是由容器或者架構将被調用類注入給調用對象,以此來降低調用對象和被調用類之間的依賴關系。
依賴注入主要有2種不同的實作形式:
1. 構造函數注入(constructor injection)
2. 設值注入(setter injection)
1.構造函數注入
通過調用類的構造函數,并将被調用類當做參數傳遞給構造函數,以此實作注入。
example:
xml配置檔案的具體配置
上述的例子中service指定userimpl這個對象為userdao,并将其注入給userserviceimpl這個類。最終由userdao這個對象完成getuser的功能。
2.設值注入
設值注入主要通過添加并使用被調用類的set的方法來完成注入。
xml配置資訊與構造函數注入相同。但是上述的例子确實通過set方法将userdao對象注入給userserviceimpl類。
注意二者的差別:
兩種注入方式的選擇
如果需要了解更具體的set注入方式 可參照官方文檔: