2 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
可能是加載spring配置文件的時(shí)候有問(wèn)題:1web.xml查看<context-param>是否正確引入配置文件;2配置文件里面查看bean信息是否配置正確;

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
Spring實(shí)例化BeanFactory的時(shí)候是默認(rèn)到classPath下面查找名為applicationContext.xml的文件。
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
Spring BeanFactory實(shí)例化Bean的過(guò)程
Bean的實(shí)例化是Bean生命周期的一個(gè)非常重要的環(huán)節(jié),一般來(lái)說(shuō),初始化后,就不再改變了,直到bean被從BeanFactory中顯式的移除。當(dāng)從BeanFactory中通過(guò)getBean()方法獲取一個(gè)bean的時(shí)候,BeanFactory會(huì)經(jīng)過(guò)如下的步驟來(lái)構(gòu)建Bean的實(shí)例,這正是實(shí)例化Bean的過(guò)程:
調(diào)用Bean的默認(rèn)構(gòu)造方法,或者在指定的構(gòu)造方法,生成bean實(shí)例(暫稱為instance1)。
如果Bean的配置文件中注入了Bean屬性值,則在instance1基礎(chǔ)上進(jìn)行屬性注入形成instance2,這種注入是覆蓋性的。
如果Bean實(shí)現(xiàn)了InitializingBean接口,則調(diào)用afterPropertiesSet()方法,來(lái)改變或操作instance2,得到instance3。
如果Bean的配置文件中指定了init-method="init"屬性,則會(huì)調(diào)用指定的初始化方法,則在instance3的基礎(chǔ)上調(diào)用初始化方法init(),將對(duì)象最終初始化為instance4;當(dāng)然,這個(gè)初始化的名字是任意的。
添加回答
舉報(bào)