在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); } }