假設我有一個Maven項目A和項目B,項目B我將它添加爲項目A中的一個jar,當我嘗試運行項目A時,它給了我錯誤「bean name」xyz「與現有的,相同的名稱和類的非兼容的bean定義「如何解決Maven項目中兩個具有相同名稱的bean的衝突?
因此,任何人都有解決這個忽略豆‘XYZ’B項目和運行只有‘A項目XYZ’豆或有任何註釋或者類似的東西那?
假設我有一個Maven項目A和項目B,項目B我將它添加爲項目A中的一個jar,當我嘗試運行項目A時,它給了我錯誤「bean name」xyz「與現有的,相同的名稱和類的非兼容的bean定義「如何解決Maven項目中兩個具有相同名稱的bean的衝突?
因此,任何人都有解決這個忽略豆‘XYZ’B項目和運行只有‘A項目XYZ’豆或有任何註釋或者類似的東西那?
您可以使用Qualifier批註來實現此目的。
@Qualifier("ProjectA")
or
@Qualifier("complete.package.ProjectA")
我可以知道ans給我和urs之間有什麼區別 –
而包裝enter link description here
編輯POM文件中的使用遮陽插件排除從B類文件,enter link description here
使用@Primary註釋可以編輯B到排除類文件POM文件在配置類上的bean defenition上
@Bean(name = "beanOnA")
@Primary
public YourInterface yourBeanOnProjectA(){
return new YourClass("Bean on Project A");
}
當自動裝配bean時指定是使用限定符註釋的名稱。
@Autowired
@Qualifier("beanOnA")
YourInterface yourInterface;
有這種情況是一種代碼味道。也許是時候重新考慮重構了? –
在項目B的bean「xyz」上使用@Lazy可能是一種方法嗎? –
@NielsBechNielsen實際上,我已經創建了與球衣原型的maven項目,因此項目A和B都包含相同的球衣配置文件,..其默認創建的類。這就是爲什麼。現在你能告訴我一些可以工作的東西嗎? – Manish