2012-06-13 51 views
0

我使用的bean工廠春JUnit測試亞軍@ContextConfiguration只是加載

XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("my-bean-file.xml")) 
MyBean bean = (MyBean) factory.getBean("myBean") 

我可以使用Spring JUnit4TestRunner加載個人豆裝入從測試類了Spring bean的單個文件或者是隻有用於加載整個應用程序上下文?

+1

你可以在:) –

+0

聲明一個文件,一個bean如果我想用我的實際春背景下,雖然文件,這是不是真的實用.. –

+1

是的,這不是一個明智的選擇。我不認爲你可以避免加載測試運行器的完整應用程序上下文。 –

回答

1

它將加載整個應用程序上下文。但是你可以先分割你的bean文件(例如到DAO中,服務層,控制器),並在主要的應用程序包括每個文件一次。在您的測試,只需使用你感興趣的層。

1

如果你想這樣做,因爲你的豆是太貴了,不能所有的加載,你可以聲明他們懶惰,這意味着在需要的時候,他們纔會被加載。

Spring文檔樣本:

<bean id="lazy" class="com.foo.ExpensiveToCreateBean" lazy-init="true"/> 

<bean name="not.lazy" class="com.foo.AnotherBean"/> 

然而,當一個延遲初始化bean是一個單 豆不是延遲初始化的依賴,在ApplicationContext創建 延遲初始化豆在啓動,因爲它必須滿足 單的依賴。該延遲初始化bean被注入到 單豆在其他地方是不是延遲初始化。

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-lazy-init

+0

謝謝。我會考慮這樣做,但我需要了解它是如何影響應用程序的其餘部分的。 –