IoC容器——Spring核心中的核心

IoC容器

Spring 容器是 Spring 框架的核心。容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁。Spring 容器使用依赖注入(DI)来管理组成一个应用程序的组件。这些对象被称为 Spring Bean。1

Spring主要容器包括 BeanFactoryApplicationContext 两种,其中ApplicationContext容器是使用最多的容器,它间接继承了BeanFactory接口,具有BeanFactory容器的全部功能,其继承关系如下:

在这里插入图片描述

图1:ApplicationContext容器类即成关系

Spring容器的作用是用来存放Bean(需要交给Spring管理的对象)并控制Bean从产生到销毁的整个生命周期,当应用程序需要用到某一个Bean时,通过容器的 ***getBean()***2 方法可以很方便的获取到这个对象。

根据Spring的不同配置方式存在不同的 SpringContext 容器实现,常见的两种配置方式,基于XML文件和注解的配置方式都具有自己的具体的容器实现,ClassPathXmlApplicationContext 类对应基于XML文件的配置方式, AnnotationConfigApplicationContext 类对应基于注解的配置方式。以上两种方式可通过如下代码获取Bean对象:

/**
 * 基于XML的配置方式获取Bean对象
 */
public static void main(String[] args) {
	ApplicationContext context = new ClassPathXmlApplicationContext("/config/beans.xml");
  context.getBean("TestBean");
}

/**
 * 基于注解的配置方式获取Bean对象
 */
public static void main(String[] args){
  ApplicationContext context = new AnnotationConfigApplicationContext(ConfigBeans.class); 
  context.getBean("TestBean");
}

关于对 IoC控制反转的理解:

控制不反转的情况下,编码过程中如果需要使用一个对象,如 Person 类的对象,则通过 new Person() 调用构造函数的方式直接创建对象,这种方式的缺点是每次都需要创建新的对象,使用n次就会创建n个对象,这种方式在特定场景下3会产生不必要的性能损失。

引入了Ioc机制后,所有的对象都会交给IoC容器管理,根据不同的配置,容器来控制对象什么时候创建新对象,什么时候销毁。当需要使用一个 Person 对象时,通过依赖注入的方式添加对应的 Person 对象依赖,而不一定创建新对象。

通过IoC机制,对象的控制者从开发者变成了IoC容器,即实现了控制反转。

【注】原创文章,欢迎点赞、转发、评论。转载请先与作者联系


  1. 摘自:https://www.w3cschool.cn/wkspring/f8pc1hae.html ↩︎

  2. getBean()方法是BeanFactory接口的基本方法,包括几个重载的方法,可以通过名称、类型、名称+类型等方式获取到对应的Bean ↩︎

  3. 如:对象占用内存特别大,或可以反复使用的对象等场景。这种场景可通过设计模式中的单例模式解决,Spring框架中也大量使用单例模式 ↩︎

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李奇技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值