我使用的是Spring 2.5.4,並且正在創建一個將部署到Weblogic上的Java應用程序。註解指定的bean名稱與現有的非兼容bean定義衝突
我在我的代碼中使用外部庫(包含在我的應用程序的結果WAR文件的WEB-INF/classes目錄中)中有一個類。我在代碼中爲該類的對象創建了一個實例變量,並添加了@Autowired註釋和一個getter和setter。在我的應用程序上下文文件我已經宣佈了庫類的類型的bean並添加以下內容:
<context:annotation-config />
<context:component-scan base-package="com.mycompany" />
...爲了註冊一個AutowiredAnnotationBeanPostProcessor,將掃描類和處理註解。
當我嘗試和部署應用程序,我得到以下錯誤:
java.lang.IllegalStateException: Annotation-specified bean name 'myBean' for bean
class [com.mycompany.package.ClassName] conflicts with existing, non-compatible
bean definition of same name and class [com.mycompany.otherPackage.ClassName]
我想這是因爲有一個在具有相同的名稱作爲一個在我的應用程序代碼庫中的類(包括類'包名稱以「com.mycompany」開頭)。鈮。這不是我添加的類,而是一個不同的類。有沒有什麼辦法可以避免這個問題,而不需要改變我的應用程序中類的名字?
感謝您的任何幫助。
你應該儘量避免使用getBean()方法。 Spring被用作IOC容器。你在做什麼不是IOC ...非常難看的解決方案 – 2013-04-19 15:53:51