【Spring温故】2. Spring Bean配置

一、什么是IOC和DI?

IOC:Inversion of Control

IOC:即反转控制,它是一种思想,它的思想是反转资源的获取方向。之前传统的资源查找方式都是要求组件主动向容器发起查找资源的请求,容器收到请求后再返回资源到组件。
而应用了IOC之后,则不再需要组件主动向容器发请求了,应用IOC之后,IOC容器会主动将资源推送给需要它的组件,举个简单例子来说:以前去买东西要去市场买上,现在你只需要放一个存放货物的柜子在你家院子里,那你需要的东西会自动放到你的柜子里。IOC推送资源给组件后,组件需要做的仅仅是选择一种合适的方式来接收资源,这种行为也被成为被动查找资源。

整体来说:Spring IOC主要负责创建对象、管理控制对象、装配对象、配置并管理这些对象的生命周期。

DI:Dependency Injection

DI:即依赖注入,IOC的另一种表现形式,组件之间依赖关系由容器在运行期间决定,即容器动态的将某个依赖关系注入到组件之中(组件以一些预先定义好的方式来接收来自容器的资源注入),依赖注入的目的是为了提升组件崇勇的次数,并为系统搭建一个灵活、可扩展的平台,DI的关键是”谁依赖谁,为什么要依赖,谁注入了谁,注入了什么“。
谁依赖谁:应用程序依赖IOC容器
为什么要依赖:应用程序需要IOC容器来提供对象需要的外部资源
谁注入了谁:IOC容器注入应用程序的某个对象,应用程序依赖的对象
注入了什么:注入某个对象所需的外部资源(如对象、属性、资源、常量等)

IOC与DI的关系:它们两是同一个概念的不同角度的概述,IOC比较含糊,DI相对IOC而言,它明确描述了被注入对象依赖IOC容器配置的对象。

最直观的表达是:IOC让对象的创建不用再去new了,可以由spring自动生产,使用java的反射机制,根据配置文件在运行时动态的去创建对象以及管理对象,并调用对象的方法。

发布了168 篇原创文章 · 获赞 0 · 访问量 7827

猜你喜欢

转载自blog.csdn.net/weixin_42661815/article/details/100987804