2013-03-28 101 views
1

我對spring有點新,我正在開發一個spring3 MVC項目。我已閱讀關於春季IoC和DI。基本上它支持構造函數和setter DI。但我想使用接口注入。我搜索了整個谷歌,通過各種例子,但沒有找到任何令人信服的例子。接口注入beans.xml

我有一個InterfaceIntA及其執行class IntAImpl。我想在beans.xml中定義它的關係,如IntA A = new IntAImpl();,然後我可以直接注入bean IntA

對此有何想法?

回答

0

像這樣:

@Autowired(value = "intA") 
public class IntAImpl implements IntA { 
} 
+0

我該如何在其他類中使用?我有一個服務類,在那裏我實例化IntA,我如何定義這個關係?那beans.xml呢?有沒有改變呢? – vipul12389

+1

將它連接到每個需要它的類。您必須告訴您的應用上下文XML使用上下文配置掃描。這是用於自動裝配的更新的註釋樣式。 App上下文XML是Spring 1.0;現在你有一個選擇。如果你調用new,那個實例不受Spring的控制。你必須自動連線並讓Spring bean工廠實例化它。 – duffymo

+0

好吧,我不知道這一點。我不知道這種自動裝配模式。 – vipul12389

0

嗯,我知道了什麼我正在尋找... 我有3個班爲IntA, IntAImpl, and Service(如名稱所示,IntAinterfaceIntAImpl是其實現類和service類呼叫IntA類方法)

我創建了beanIntAImplbeans.xml。 然後我注入IntA豆在我的服務類,這樣

IntA = (IntA)context.getBean("IntAImpl");

beans.xml是這樣

<bean id="IntAImpl" class="com.IntAImpl" autowire="byType"></bean>

所以我這是怎麼實現的接口注入

(可能我的問題可能會誤導人,對不起, )

+1

非常好,但你仍然努力工作。你的服務不應該要求上下文來幫助你;它會做到這一點,如果你自動連線。更少的代碼,更多的春天。 – duffymo

+0

它會工作,如果我autowire它?我認爲自動裝配類型將工作雖然 – vipul12389

+0

自動連接它的名稱將是我的首選項。 – duffymo