2015-12-24 113 views
1

我是新來的春天誰能告訴我自動裝配與依賴注入在春季有什麼區別?Spring中自動裝配與依賴注入有什麼區別?

我試圖在互聯網上搜索,但我沒有找到有用的東西。

+1

這是一回事。術語「自動裝配」來自於使用'@ Autowired'註釋,它是DI容器注入依賴關係的標記註釋。 –

回答

2

沒有區別。當這個概念是新的時候,有幾個名字被使用,並且「依賴注入」最終成爲最常見的。 Spring的配置系統使用了「autowire」,而且這種配置系統停留在那裏,GoF術語「控制反轉」有時會用到,通常在更爲學術的環境中使用。他們都是同義詞。

0

依賴注入控制反轉是同義詞。您將對象依賴關係從對象的控制反轉爲調用對象的對象,因此您正在注入這些/這些依賴關係。

所以,你是一個誰規定了哪個對象將會收到你要調用的一個:

ObjectA dependency = new ObjectA(); //You have the control about which kind of object is going to be injected 
ObjectB invoked = new ObjectB(dependency); //You inject that object 

自動裝配是框架來自動決定哪些對象需要的時候,你的能力調用該對象。通常使用反射,檢查代碼中的某些文檔文件或註釋,參數...。所以當你從容器中獲取它時,所有的依賴關係都已經設置好了。你可以控制哪些依賴關係應該被注入,但是你可以在配置文件,註釋,類型提示中指定它們......

所以,自動裝配是實現依賴注入的一種更自動的方式。

相關問題