Spring中提供一些Aware相关接口,像是BeanFactoryAware、 ApplicationContextAware、ResourceLoaderAware、ServletContextAware等等,实例这些 Aware接口的Bean在被初始之后,可以取得一些相对应的资源,例如实例BeanFactoryAware的Bean在初始后,Spring容器将会注入BeanFactory的实例,而实例ApplicationContextAware的Bean,在Bean被初始后,将会被注入 ApplicationContext的实例等等。
第一步:编写工具类
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class BeanUtil implements ApplicationContextAware {
/** Spring上下文 */
private static ApplicationContext applicationContext;
/**
* 根据beanName获取对象
*
*/
public static Object getBean(String beanName) {
return applicationContext.getBean(beanName);
}
public static <T> T getBean(String beanName, Class<T> clazz) {
return clazz.cast(getBean(beanName));
}
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
this.applicationContext = applicationContext;
}
}
第二步:
在applicationContext.xml中创建第一步工具类Bean
<bean id="beanUtil" class="BeanUtil路径"></bean>
OK,百试不爽!