Spring学习 ----- 理解SpringIoC

SpringIoC


强依赖关系

在这里插入图片描述
现在有两个类,类A和类B,其中A类中有一个fun方法,B类向调用这个方法有什么办法呢?首先fun是一个普通方法,要调用必然要有A类的对象。因此可以这样:
在这里插入图片描述

但这样的话,A和B之间就会产生一种关系,一种强依赖关系,B类是依赖于A的也就是说没有A类这个对象它就调用不了A类的方法。

而Ioc就是为了降低这种依赖而生的。那么如何降低依赖呢?

控制反转

Inversion of Control,缩写为IoC,译为控制反转,是面向对象编程的一种设计原则。目的是用来降低代码之间的耦合度。

  • 刚开始创建对象的权利在B类中,或者说在程序中,也就是说由程序来主动创建对象
  • 但有了控制反转就不一样了,A类和B类都无需自己创建对象了。都统统交给容器。容器来管理对象的整个生命周期,和对象之间的关系。

这便是控制反转,反转的是一种权利,一种创建对象的权利。

虽然程序不用创建对象了,交由了Spring容器,但程序要用对象啊,这样才能调用方法,这一点Spring自然是明白的,因此Spring又有一个依赖注入技术。

依赖注入

在上述情景中B类需要A类的对象,你不用自己new了,Spring容器来给你注入一个,就像打针一样,这样你就有A类的对象了,这样的话,你和A类也没多大关系了,这个A类的对象是容器给你的,又不是你new的。

在这里插入图片描述

依赖注入的优点
  • 每个类都会将自己注册在容器中,由容器统一管理。
  • 程序需要什么资源(哪个类的对象)容器就给你提供一个,无需自己创建。
  • 重复利用,提高了对象的利用率。
  • 降低了程序间的耦合度

猜你喜欢

转载自blog.csdn.net/weixin_43213517/article/details/98056643