1,set注入 2,構造注入
原理:通過類的setter方法完成依賴關系的設定
name屬性的取值依setter方法名而定,要求這個類裡面這個對應的屬性必須有setter方法。
set方法注入時spring中配置檔案:
定義car類:
定義person類:
測試類:
使用單元測試(junit)測試togetperson()方法,結果為:
person [name=張三, age=11, car=car [name=奔馳, color=土豪金, clas=進階轎車]]
原理:通過構造函數完成依賴關系的設定
構造注入指的是在接受注入的類中,定義一個構造方法,并在構造方法的參數中定義需要注入的元素,其中,index表示構造方法中的參數索引(第一個參數索引為0)。
構造方法注入時spring中配置檔案:
person [name=李四, age=23, car=car [name=大衆, color=白色, clas=中級轎車]]
上面的例子都采用了單元測試的方法檢測運作結果,需要導庫: junit
demo的大體結構:
我們可以看到,set方法和構造方法都可以設值成功, 實際開發中最常用到的是set方法設值。但這兩種依賴注入的方式并沒有絕對的好壞,隻是使用的場合不同。
使用構造注入可以在建構對象的同時完成依賴關系到的建立,是以如果要建立的對象的關系很多,使用構造注入會在構造方法上留下很多參數,可讀性極差,是以當對象的關系比較多的時候采用set方法注入。
使用set方法注入是通過類的setter方法完成依賴關系的設定的,是以不能保證相關的資料在執行時不被更改設定。是以如果想使一些資料變為隻讀或者私有,就要采用構造注入了。
建議采用以set注入為主,構造注入為輔的注入政策。對于依賴關系無須變化的注入,盡量采用構造注入;而其他的依賴關系的注入,則考慮采用set注入。