通过ApplicationContextAware获取bean
2011-03-02 10:06
packageorg.company.xxx; importorg.springframework.beans.BeansException; importorg.springframework.context.ApplicationContext; importorg.springframework.context.ApplicationContextAware; /** * 获取spring容器,以访问容器中定义的其他bean */ publicclass SpringContextUtil implements ApplicationContextAware { // Spring应用上下文环境 privatestatic ApplicationContext applicationContext; /** * 实现ApplicationContextAware接口的回调方法,设置上下文环境 */ publicvoid setApplicationContext(ApplicationContext applicationContext)throws BeansException { SpringContextUtil.applicationContext= applicationContext; } publicstatic ApplicationContext getApplicationContext(){ return applicationContext; } /** * 获取对象 * 这里重写了bean方法,起主要作用 * @param name * @return Object 一个以所给名字注册的bean的实例 * @throws BeansException */ publicstaticObject getBean(String beanId)throws BeansException { return applicationContext.getBean(beanId); } }
Bean配置:
<beanid="SpringContextUtil"class="org.company.xxx.SpringContextUtil"/>
实现了ApplicationContextAware接口,在Bean的实例化时会自动调用setApplicationContext()方法!
|