Spring容器与获取Bean的方法

在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) 不常用

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容