在Spring中,实现ApplicationContextAware并覆盖setApplicationContext方法, 就可以获得ApplicationContext了。
public class SpringApplicationContextHolder implements ApplicationContextAware { public static ApplicationContext ctx; public void setApplicationContext(ApplicationContext ctx) throws BeansException { SpringApplicationContextHolder.ctx = ctx; } }
使用ApplicationContext就可以获取想要的Bean了。
public class SpringApplicationContextHolder implements ApplicationContextAware { public static ApplicationContext ctx; public void setApplicationContext(ApplicationContext ctx) throws BeansException { SpringApplicationContextHolder.ctx = ctx; } public static IXXXDao getXXXDao() { return ctx.getBean(IXXXDao.class); } }