spring ioc理解

本文通过《墨攻》电影场景比喻,深入浅出地解释了Spring框架中IoC(控制反转)与DI(依赖注入)的核心概念。剖析了导演、剧本与演员三者关系映射到业务场景、业务处理对象及最终操作对象的类比,阐述了IoC容器如何管理和注入bean。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       一直对于spring 的ioc的理论描述概念比较模糊,不能有一个系统的认识,于是这段时间通过翻阅书籍以及网上查询资料有了一个比较系统性的解释。

spring的ioc描述又名DI(Dependency Injection)依赖注入。其意思是将调用者需要的对象的依赖关系交由第三方进行管理,以及注入。

通过翻阅书籍理解IOC的原理是:将业务场景(business)、业务场景进行行为操作的人物(service(业务处理的处理对象))、最终进行业务操作的对象(bean)三者的关系进行形象的比喻

以张之亮的《墨攻》进行比喻:其中一个场景是,刘德华饰演的墨者革离到达梁国都城下时,城上梁国守军问道:“来者何人”刘德华回答:“墨者革离”,java语言通过这个“城门叩问”的场景编写剧本,并借此理解IOC的概念

在这个场景,通过引入导演这一角色,将场景,剧本角色,演员进行三者之间业务调度,实现各个业务模块之间的解耦。导演选择剧本、导演海选剧本的角色扮演者演员。

而ioc的核心理论是:控制、反转。

控制:指的是剧本选择GeLi的角色扮演者的控制权

反转:指的是将控制的权限从《墨攻》剧本中移除,并转交给导演

导演:拥有角色bean的控制管理权利(ioc容器),即导演进行演员bean的选择权(bean所注册的对象,类的全限定类名)、调度权(bean的注入),演员解约的权利(bean的销毁)

ioc通过其定义的注解,实现spring ioc容器在启动的时间实现bean的注册、实例化、注入

而控制反转的技术的实现,是基于java的反射机制进行架构实现的,因为在tomcat启动服务的时候,Java虚拟机会将项目中的各个class装载到jvm中,并且对于每个装载的class都有一个描述(全限定类名),在通过将全限定类名交给反射机制实现对类的控制(从而达到对类的实例化,方法的调用,属性的配置)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值