2014-12-04 65 views
0

我有一個eclipse java項目,並在/ src/main/java下(包com.xxx.yyy)。我還在/ src/test/java下有一些Test類(在com.xxx.yyy包下)。測試類(註釋爲@Service(value =「sampleclient」)public class SampleClient {...} 可以通過位於/ src/main/java下的其中一個包中的框架代碼調用春季組件掃描跨越

如果所有文件/軟件包位於/ src/main/java下,組件掃描工作正常,但它會忽略我在/ src/test/java下的軟件包。

如何強制spring掃描組件包)在多個目錄下?

+0

你爲什麼從生產代碼中調用測試代碼? – Foxsly 2014-12-04 03:43:46

+0

爲了改變這個問題 - 在不同的目錄/類路徑下,Spring組件掃描配置訪問包的方式如何? – vv2014 2014-12-04 04:23:22

回答

1

我建議你使用maven或gradle構建系統,它具有清晰的源代碼和測試代碼之間的界限,以及它如何用於構建life cycle。這意味着您可以在「測試」階段使用任何測試類,並在此之後忽略。您也可以相應地管理測試依賴關係。

0
<context:component-scan base-package="x.y.z.prod.service, x.y.z.test.service" /> 
+0

它工作時,xyzprod.service和xyztest.service是在同一目錄/ src/main/java下,但是如果你把xyztest.service放在/ src/test/java下,組件掃描不會選擇它,這是我原來的問題...我做錯了什麼? – vv2014 2014-12-04 14:11:58

+0

試試....有2個獨立的彈簧配置文件。在其中一個測試類的組件掃描中,另一個(我稱這爲主)導入另一個。在主配置中執行prod類的組件掃描。 – Arun 2014-12-05 05:59:42