手动获取spring的ApplicationContext和bean对象

亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述手动获取spring的ApplicationContext和bean对象相关的知识,希望能为你提供帮助。
WEB项目:
方法1:
?

1ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc)
  方法2:
?
1ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc)
  方法3:
?
1写一个工具类类继承ApplicationObjectSupport,并将这个加入到spring的容器
  方法4:
?
1写一个工具类类继承WebApplicationObjectSupport,并将这个加入到spring的容器
  方法5:(推荐)
?
1写一个工具类实现ApplicationContextAware接口,并将这个加入到spring的容器
  示例:
?
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import java.util.Map; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware;   /**  * 获取ApplicationContext和Object的工具类  * @author yzl  *  */@SuppressWarnings({ "rawtypes", "unchecked" })public class SpringContextUtils implements ApplicationContextAware {        private static ApplicationContext applicationContext;           public void setApplicationContext(ApplicationContext arg0)                        throws BeansException {                applicationContext = arg0;         }          /**          * 获取applicationContext对象          * @return          */        public static ApplicationContext getApplicationContext(){                return applicationContext;         }                  /**          * 根据bean的id来查找对象          * @param id          * @return          */        public static Object getBeanById(String id){                return applicationContext.getBean(id);         }                  /**          * 根据bean的class来查找对象          * @param c          * @return          */        public static Object getBeanByClass(Class c){                return applicationContext.getBean(c);         }                  /**          * 根据bean的class来查找所有的对象(包括子类)          * @param c          * @return          */        public static Map getBeansByClass(Class c){                return applicationContext.getBeansOfType(c);         }}
 
 
非WEB项目
?
1ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml")
可选的操作方法有:
?
1234567891011一:String[]    path={"WebRoot/WEB-INF/applicationContext.xml","WebRoot/WEB-INF/applicationContext_task.xml"}; ApplicationContext context = new FileSystemXmlApplicationContext(path);   二:String path="WebRoot/WEB-INF/applicationContext*.xml"; ApplicationContext context = new FileSystemXmlApplicationContext(path);   三:ApplicationContext ctx = new FileSystemXmlApplicationContext("classpath:地址"); 没有classpath的话就是从当前的工作目录
【手动获取spring的ApplicationContext和bean对象】 

    推荐阅读