您好,登錄后才能下訂單哦!
ApplicationContext的BeanFactory 的子類, 擁有更強大的功能,ApplicationContext可以在服務器啟動的時候自動實例化所有的bean,而 BeanFactory只有在調用getBean()的時候才去實例化那個bean, 這也是我們為什么要得到一個ApplicationContext對象, 事實上Spring2相關的web應用默認使用的是ApplicationContext對象去實例化bean, 換一句話說, 在服務器啟動的時候,Spring容器就已經實例化好了一個ApplicationContext對象,所以我們要在老的代碼里嘗試去獲取這個對象。 但是如何才能得到一個ApplicationContext對象呢?方法很多,最常用的辦法就是用ClassPathXmlApplicationContext, FileSystemClassPathXmlApplicationContext, FileSystemXmlApplicationContext 等對象去加載Spring配置文件,這樣做也是可以, 但是在加載Spring配置文件的時候,就會生成一個新的ApplicaitonContext對象而不是Spring容器幫我們生成的哪一個, 這樣就產生了冗余, 所以我們在這里不采用這種加載文件的方式,我們使用ApplicationContextAware讓Spring容器傳遞自己生成的ApplicationContext給我們, 然后我們把這個ApplicationContext設置成一個類的靜態變量, 這樣我們就隨時都可以在老的代碼里得到Application的對象了。(此段說明轉自:http://blog.csdn.net/kouwoo/article/details/43405109)
@Component public class SpringUtils implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext arg0) throws BeansException { applicationContext = arg0; } public static Object getObject(String id) { Object object = null; object = applicationContext.getBean(id); return object; } }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。