2013-04-05 25 views
0

我有(2+)個項目包含在我的genxml項目中,例如, framework1framework2。他們是相同的框架略有不同的版本,他們都有類AbstractScreenTest.class。每個AbstractScreenTest.class都有不同的註解當他們有多個相同名稱的類別時,識別具體的項目類別

@MyAnnotation(name="version", value = "71automation") 
@MyAnnotation(name="version", value = "72automation") 

反正是有使用註釋或其他方式我,可以指定其中AbstractScreenTest.class我想在代碼中使用低於目前的 目前只有找到的第一個實例使用。

ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(true); 
provider.addIncludeFilter(new AssignableTypeFilter(AbstractScreenTest.class)); 
Set<BeanDefinition> components = provider.findCandidateComponents(candiatePackage); 
+0

你的兩個課程都在同一個包裏嗎?如果是這樣,我會認爲你不會選擇你得到的文件(除了以特定的方式排序類路徑)。 – 2013-04-05 13:30:28

+0

是的,他們都在同一個包。 – Colin747 2013-04-05 13:31:57

+0

您是否在運行時注意到其中只有一個可用?兩個具有相同包和名稱的類肯定會在運行時給你帶來麻煩。通過做某種構建時間註釋處理,您可能可以實現您的目標,但我並不熟悉。 – 2013-04-05 13:35:40

回答

0

這不是Spring的問題,JVM不能同時在一個類加載器中加載兩個類的類。

加載同一類的不同版本的唯一方法是使用具有不同類路徑的兩個不同類加載器。沒有簡單的解決方案,特別是如果這些框架使用其他可以交互的類。

相關問題