spring依赖注入的理解

本文深入探讨了依赖注入(DI)的概念及其在Spring框架中的应用。详细解释了依赖与依赖注入的区别,以及依赖注入如何通过外部注入依赖实现解耦,提高代码的灵活性和可维护性。同时介绍了Spring框架如何实现依赖注入,使实例间的依赖关系由IOC容器管理。

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

首先说下什么是依赖

依赖的解释:依赖是一种关系,一个类依赖另一个类,也就是一个类中有另一个类的引用,class Person中有class Car的引用那就叫 Person对Car有一个依赖。

//Person对Car有一个依赖
class Person{
     Car car;
     public Person(){
         car=new Car();
     }
     
}

再来谈谈什么是依赖注入

我们一开始学java对于上面的构造方法里面我们如何给car引用对象呢?我们的第一反应是啥,new 对象啊!,这也就是我们的习惯思维,调用者来创建被调用者的实例,而在依赖注入的思想里,我们不是直接new 对象了,而是通过传递外部引用,也就是通过外部注入依赖。

//外部注入依赖
class Person{
     Car car;
     public Person(Car car){
         this.car=car;
     }
     
}

这里面调用者不在控制car的实例的实现了所以叫控制反转IoC,inversion of control)实际上和依赖注入DI,DependencyInjection)是一个意思。

那么我们这么做有啥意义呢?new 对象不是挺好的吗?

我来好好解释为啥要依赖注入,比如上面的person类,如果我的Person类中的car从本来的奇瑞qq变大奔,我是不是要再改Person类中的构造方法,是不是贼麻烦,这里面person和car紧密的耦合在一起,我们也就写死了car在Person类中而且new 对象过程也很慢。而通过外部注入依赖的方式我不需要再改Person类中的代码,我写我的大奔代码 传**入大奔就行了,这也就说明了为啥要依赖注入,因为可以解耦

依赖注入主要作用: 依赖注入能够让相互协作的软件组件保持松散耦合

Spring中依赖注入

  • 依赖注入DI,DependencyInjection),也叫控制反转IoC,inversion of control)是Spring框架的核心机制,相当于心脏对于人的重要性,只有真正理解这些核心的功能,才有能力使用spring框架。

  • Spring中的依赖注入就是上面说的外部,实例不在由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类。 我们不用关心Car的变化,实例之间的依赖关系由IOC容器负责了,等待Spring依赖注入。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值