1.重写 ApplicationContextAware 接口里面的 setApplicationContext 方法
@Component public class ApplicationContainer implements ApplicationContextAware { private static ApplicationContext applicationContext; public static <T> T getBean(Class<T> clazz){ return applicationContext.getBean(clazz); } public static <T> T getBean(String beanName,Class<T> clazz){ return applicationContext.getBean(beanName,clazz); } public static Object getBean(String beanName){ return applicationContext.getBean(beanName); } @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } }
2.在其他地方就可以调用静态方法从容器中获取对象了