首先採用註解方式在cn.zy.spring.anno包中建立userdao類
demo:
@repository("userdao")
public
class userdao
}
接著在cn.zy.spring.jdbctemplate包中建立userdao類,並增加findobjeect測試方法。
demo:
@component("userdao")
public
class userdao
}
建立junit測試類:
demo:
public
class testioc
執行結果報錯:
org.springframework.beans.factory.beandefinitionstoreexception: unexpected exception parsing xml document from
for bean class [cn.zy.spring.jdbctemplate.userdao] conflicts with existing, non-compatible bean definition of same name and
class [cn.zy.spring.anno.userdao]
由於採用註解開發,雖然兩個類在不同的包中,但是id卻相同,這就會導致建立了兩個相同的類,而spring是無法識別的。
將其中乙個userdao類的註解的name屬性改為其它值,只要不出現兩個相同的name值就可以。
我猜想在spring的beanfactory並沒有對建立的物件進行按包分類,配置檔案中配置的class屬性只是為反射提供建立物件的路徑而已。
beanfactory就像是乙個物件池子,非常雜亂,在你載入spring的配置檔案時,所有的物件及依賴關係都會被建立然後放在這個大池子中,使用的時候從裡面取就可以了。
這點spring做的並不人性化,需要改進啊!
個人總結,僅供參考。
CI框架中 類名不能以方法名相同
昨天晚上乙個坑爹的問題折騰了我一晚上,首先我來說下我的 我建立了乙個index的控制器然後呢 在控制器裡有乙個index的方法。頁面模板都有。if defined basepath exit no direct script access allowed class index extends ci...
JSON過濾物件中屬性名相同(搜尋的問題及答案)
用json過濾物件中屬性名相同時都會被過濾的情況,我有乙個需求 class a class b 過濾不需要解析的屬性 jsonconfig config new jsonconfig a target new a config.setexcludes new string jsonobject js...
C 多繼承中重寫不同基類中相同原型的虛函式
在c 多繼承體系當中,在派生類中可以重寫不同基類中的虛函式。下面就是乙個例子 class cbasea class cbaseb class cderived public cbasea,public cbaseb void test 可是,如果兩個基類中有乙個相同原型的虛函式,例如下面這樣 cla...