当一个类实现了这个接口(ApplicationContextAware)之后,这个类就可以方便获得ApplicationContext中的所有bean。换句话说,就是这个类可以直接获取spring配置文件中,所有有引用到的bean对象。
@Order(1)
@Component
public class SpringContextUtils implements ApplicationContextAware {
private ApplicationContext context;
@Override
public void setApplicationContext(ApplicationContext context) throws BeansException {
this.context = context;
}
public final <T> T getBean(Class<T> clazz) {
if (clazz == null) {
return null;
}
return context.getBean(clazz);
}
public final <T> T getBean(String beanId) {
return (T) context.getBean(beanId);
}
public final <T> T getBean(String beanName, Class<T> clazz) {
if (StringUtils.isBlank(beanName)) {
return null;
}
if (clazz == null) {
return null;
}
return (T) context.getBean(beanName, clazz);
}
// public static ApplicationContext getContext() {
// return context;
// }
}