我一直在尋找公司的一些現有代碼,並且我看到的是applicationContext.xml文件具有UserDAO類,聲明爲一個bean,但在DAO類本身中很好已經聲明瞭getFromApplicationContext(ApplicationContext ctx),它返回DAO類本身的實例。我無法理解這個方法被調用的位置,誰在調用它。 DAO類擴展HibernateDaoSupport類 我如何知道我必須在我的類中創建此方法,因爲如果我刪除它,eclipse中的編譯器不會投訴。我想說的是應該有一個接口或抽象類,這將迫使我寫這種方法。
在ApplicationContext(Spring)中聲明的DAO類
public static UserDAO getFromApplicationContext(ApplicationContext ctx) {
return (UserDAO) ctx.getBean("userDAO");
}
請任何能解釋一下的人。
with CTRL + ALT + H我發現org.springframework.beans.factory.BeanFactory的getBean(String)正在調用這個方法。但爲什麼它仍然是一個神話。因爲GlobalDataAceess類正在使用注入到其中的UserDAO bean。 GlobalDataAccess類也在applicationContext中聲明爲bean,在Controllers中我們調用GlobalDataAccess來獲取DAO,並在其上調用方法。所以Beanactory通過調用這個mystry方法來扮演角色。 – user984281
DAO執行一些界面嗎? – Bozho
我真的沒有看到Spring的getBean方法如何調用這個方法,特別是沒有使用反射。我懷疑Spring有你的UserDAO類作爲依賴。 –