获取bean也就需要获取ApplicationContext
方法一:在初始化时保存ApplicationContext对象
//根目录
ApplicationContext ac = new FileSystemXmlApplicationContext(“src/applicationContext.xml”);
//src下
ApplicationContext ac = new ClassPathXmlApplicationContext(“applicationContext.xml”);
ac.getBean(“userService”);
//比如:
方法二:通过Spring提供的utils类获取ApplicationContext对象
ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc);
ac1.getBean(“beanId”);
方法三:继承自抽象类ApplicationObjectSupport
调用getApplicationContext()方法。能够方便的获取ApplicationContext。
方法四:继承自抽象类WebApplicationObjectSupport
调用getWebApplicationContext()获取WebApplicationContext
方法五:实现接口ApplicationContextAware
实现setApplicationContext(ApplicationContext context)方法
public void setApplicationContext(ApplicationContext applicationContext) {
SpringContextUtil.applicationContext = applicationContext;
}
方法六:通过Spring提供的ContextLoader
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
wac.getBean(beanID);
