美文网首页
Spring容器与获取Bean的方法

Spring容器与获取Bean的方法

作者: 极客_Ls | 来源:发表于2019-02-15 12:37 被阅读65次

在Spring IOC容器读取 Bean 配置、创建 Bean 实例之前必须对它进行实例化,只有进行实例化后才能从IOC容器获取 Bean 实例并使用;

Spring 提供了两种类型的 IOC 容器实现
  1. BeanFactory :IOC的基本实现;
  2. ApplicationContext:提供了更多高级特性,是BeanFactory的子接口;
  • BeanFactory 是 Spring 的基础设施,面向 Spring 本身;
  • ApplicationContext 面向使用 Spring 框架的开发者几乎所有的应用场合都直接使用 ApplicationContext 而非底层的BeanFactory
  • 无论使用何种方式,配置方式都是相同的
ApplicationContext
  • ConfigurableApplicationContext:
    扩展于ApplicationContext,新增两个主要方法:refresh()、close()
    ApplicationContext具有启动、刷新和关闭上下文的能力
  • ApplicationContext的主要实现类:
    1. ClassPathXmlApplicationContext:从类路径下加载配置文件
    2. FileSystemXmlApplicationContext:从文件系统加载配置文件
  • WebApplicationContext:专门为web应用而准备的,它允许从相对于 WEB 根目录的路径中完成初始化工作
从IOC获取Bean

调用ApplicationContext的getBean()获取
ApplicationContext共重载了四次getBean()方法;


  1. getBean(String)通过id获取返回一个Object类型的数据
ApplicationContext ac = new ClassPathXmlApplicationContext("BeanXml.xml");
Dog dog = (Dog) ac.getBean("id");
  1. getBean(Class<T>)通过类型获取返回一个该类型的数据
ApplicationContext ac = new ClassPathXmlApplicationContext("BeanXml.xml");
Dog dog = ac.getBean(Dog.Class);
  1. getBean(String, Class<T>)通过类型和id同时获取返回一个该类型的数据
ApplicationContext ac = new ClassPathXmlApplicationContext("BeanXml.xml");
Dog dog = ac.getBean("id",Dog.Class);
  1. getBean(String,Object) 不常用

相关文章

网友评论

      本文标题:Spring容器与获取Bean的方法

      本文链接:https://www.haomeiwen.com/subject/jiepeqtx.html