如何通俗的理解java的依賴注入!
阿新 • • 發佈:2019-01-02
假設你編寫了兩個類,一個是人(Person),一個是手機(Mobile)。 人有時候需要用手機打電話,需要用到手機的callUp方法。 傳統的寫法是這樣: Java code public class Person{ public boolean makeCall(long number){ Mobile mobile=new Mobile(); return mobile.callUp(number); } } 也就是說,類Person的makeCall方法對Mobile類具有依賴,必須手動生成一個新的例項new Mobile()才可以進行之後的工作。依賴注入的思想是這樣,當一個類(Person)對另一個類(Mobile)有依賴時,不再該類(Person)內部對依賴的類(Moblile)進行例項化,而是之前配置一個beans.xml,告訴容器所依賴的類(Mobile),在例項化該類(Person)時,容器自動注入一個所依賴的類(Mobile)的例項。 介面: Java code public Interface MobileInterface{ public boolean callUp(long number); } Person類: Java code public class Person{ private MobileInterface mobileInterface; public boolean makeCall(long number){ return this.mobileInterface.callUp(number); } public void setMobileInterface(MobileInterface mobileInterface){ this.mobileInterface=mobileInterface; } } 在xml檔案中配置依賴關係 Java code <bean id="person" class="Person"> <property name="mobileInterface"> <ref local="mobileInterface"/> </property> </bean> <bean id="mobileInterface" class="Mobile"/> 這樣,Person類在實現撥打電話的時候,並不知道Mobile類的存在,它只知道呼叫一個介面MobileInterface,而MobileInterface的具體實現是通過Mobile類完成,並在使用時由容器自動注入,這樣大大降低了不同類間相互依賴的關係。
java依賴注入的方法:set注入,構造方法注入,介面注入。
具體的注入實現見:http://blog.csdn.net/lishuangzhe7047/article/details/20740835