通過ApplicationContextAware獲取bean

Spring中提供一些Aware相關接口,像是BeanFactoryAware、 ApplicationContextAware、ResourceLoaderAware、ServletContextAware等等,實作這些 Aware接口的Bean在被初始之後,可以取得一些相對應的資源,例如實現BeanFactoryAware的Bean在初始後,Spring容器將會注入BeanFactory的實例,而實現ApplicationContextAware的Bean,在Bean被初始後,將會被注入 ApplicationContext的實例等等


實現了ApplicationContextAware接口,就可以通過ApplicationContext的實例獲取到我們想要的bean


public class SpringFactory implements ApplicationContextAware {
	private static ApplicationContext context;
	@SuppressWarnings("static-access")
	public void setApplicationContext(ApplicationContext applicationContext)
			throws BeansException {
		this.context = applicationContext;
	}
	public static Object getObject(String id) {
		Object object = null;
		object = context.getBean(id);
		return object;
	}	
}

<bean id="springfactory" class="com.april.service.impl.SpringFactory"></bean>

例如可以在javaBean中獲取

TestDaoImpl testDao = (TestDaoImpl) SpringFactory.getObject("testDao")






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章