傳統方式-------------經過加載配置文件獲取beanhtml
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); IDao dao= (IDao)context.getBean("dao");
參考自:http://blog.sina.com.cn/s/blog_62f6307d0101dn3c.html,http://www.iteye.com/topic/616752java
1.先寫個工具類,實現ApplicationContextAware接口,而後他會把ApplicationContext對象傳給你,在setApplicationContext方法裏已經把ApplicationContext傳給你了,而後去完成初始化。spring
/** * 從Spring容器中取得對象 * */ public class SpringContextUtil implements ApplicationContextAware, ServletContextAware { private static ApplicationContext applicationContext; // Spring上下文對象 private static ServletContext servletContext;// 注入 系統上下文對象 /** * 實現ApplicationContextAware接口的回調方法,設置上下文環境 * * @param applicationContext * @throws BeansException */ public void setApplicationContext(ApplicationContext applicationContext) { SpringContextUtil.applicationContext = applicationContext; } /** * @return ApplicationContext */ public static ApplicationContext getApplicationContext() { return applicationContext; } /** * 獲取對象 * * @param name * @return Object 一個以所給名字註冊的bean的實例 * @throws BeansException */ public static Object getBean(String name) throws BeansException { return applicationContext.getBean(name); } /** * 功能 : 實現 ServletContextAware接口,由Spring自動注入 系統上下文對象 * **/ public void setServletContext(ServletContext servletContext) { SpringContextUtil.servletContext = servletContext; } /** * @return ServletContext */ public static ServletContext getServletContext() { return servletContext; } }
2.applicationContext也須要注入不然報NullPointException,在spring配置文件applicationContext.xml中配置以下:數據庫
<bean id="springContextUtil" class="com.aaa.util.SpringContextUtil" lazy-init="false"></bean>
3.java代碼app
private static IDao Idao; Idao=(Idao)SpringContextUtil.getBean("dao");
4.注意:工具
解釋下第2條中配置爲啥要加 lazy-init="false"spa
在你的spring配置文件中通常會有default- default-lazy-init="true" 這句話。該屬性默認爲false狀態,這樣致使spring在啓動過程致使在啓動時候,會默認加載整個對象實例圖,從初始化ACTION配置、到service配置到dao配置、乃至到數據庫鏈接、事務等等。spring的啓動會很慢因此在開發時都會改成true,延遲加載,而後就是會報NullPointException。code
注入 加上 lazy-init="false" 能夠保證 當即加載。xml