在SSH集成的前提下。某些情況我們需要在Action以外的類(lèi)中來(lái)獲得Spring所管理的Service對(duì)象。
之前我在網(wǎng)上找了好幾好久都沒(méi)有找到合適的方法。例如: ApplicationContext context = new ClassPathXmlApplicationContext(); 當(dāng)時(shí)我覺(jué)得沒(méi)有這個(gè)必要,浪費(fèi)內(nèi)存。后來(lái)我終于想出了一個(gè)解決方法。在此拿來(lái)給大家參考下,希望對(duì)大家有幫助。 1.創(chuàng)建一個(gè)類(lèi)并讓其實(shí)現(xiàn)org.springframework.context.ApplicationContextAware接口來(lái)讓Spring在啟動(dòng)的時(shí)候?yàn)槲覀冏⑷階pplicationContext對(duì)象. 示例代碼: view plaincopy to clipboardprint? import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; public class MyApplicationContextUtil implements ApplicationContextAware { private static ApplicationContext context;//聲明一個(gè)靜態(tài)變量保存 @Override public void setApplicationContext(ApplicationContext contex) throws BeansException { this.context=contex; } public static ApplicationContext getContext(){ return context; } 2.在applicationContext.xml文件中配置此bean,以便讓Spring啟動(dòng)時(shí)自動(dòng)為我們注入ApplicationContext對(duì)象. 例: <!-- 這個(gè)bean主要是為了得到ApplicationContext 所以它不需要其它屬*--> <bean class="org.ing.springutil.MyApplicationContextUtil"></bean> 3.有了這個(gè)ApplicationContext之后我們就可以調(diào)用其getBean("beanName")方法來(lái)得到由Spring 管理所有對(duì)象.
|
|
來(lái)自: yan的圖書(shū)41 > 《java》