依赖注入Spring 的依赖注入是什么意思?

依赖注入  时间:2021-01-13  阅读:()

什么是“依赖注入”?

依赖注入(Dependency Injection)和控制反转(Inversion of Control)是同一个概念。

具体含义是:当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在 传统的程序设计过程中,通常由调用者来创建被调用者的实例。

但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者 实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入。

如何通俗的理解java的依赖注入

假设你编写了两个类,一个是人(Person),一个是手机(Mobile)。

人有时候需要用手机打电话,需要用到手机的callUp方法。

传统的写法是这样: Java code public class Person{ public boolean makeCall(long number){ Mobile mobile=new Mobile(); return mobile.callUp(number); } } 也就是说,类Person的makeCall方法对Mobile类具有依赖,必须手动生成一个新的实例new Mobile()才可以进行之后的工作。

依赖注入的思想是这样,当一个类(Person)对另一个类(Mobile)有依赖时,不再该类(Person)内部对依赖的类(Moblile)进行实例化,而是之前配置一个beans.xml,告诉容器所依赖的类(Mobile),在实例化该类(Person)时,容器自动注入一个所依赖的类(Mobile)的实例。

接口: Java code public Interface MobileInterface{ public boolean callUp(long number); } Person类: Java code public class Person{ private MobileInterface mobileInterface; public boolean makeCall(long number){ return this.mobileInterface.callUp(number); } public void setMobileInterface(MobileInterface mobileInterface){ this.mobileInterface=mobileInterface; } } 在xml文件中配置依赖关系 Java code 这样,Person类在实现拨打电话的时候,并不知道Mobile类的存在,它只知道调用一个接口MobileInterface,而MobileInterface的具体实现是通过Mobile类完成,并在使用时由容器自动注入,这样大大降低了不同类间相互依赖的关系。

java依赖注入的方法:set注入,构造方法注入,接口注入。

Spring什么叫依赖注入?

IoC 或者 DI 或者 ...一大堆的缩写词 不管是面向对象,还是面向过程,都需要分成许多的块,然后由这些部件协同工作完成任务 要协同工作就会产生依赖,一个方法调用另一个方法,一个对象包含另一个对象 如果对象A包含对象B的话,就需要在A里new一个B 依赖注入从具体类B里抽象出接口IB——IB的具体实现可能有很多B,B1,B2...很多种——这样A可以不用再new具体的B了,而是跟IoC容器说:我要一个IB(getBean("IB"))。

然后,由容器根据配置文件来做具体的new的工作。

具体new的是哪个,由配置文件从代码外部决定,要更换成B,B1,或是B2...修改配置文件就能做到,不用再改代码了

Spring 的依赖注入是什么意思?

如楼上所说 “依赖注入就是通过配置文件解决代码问题 <bean id="" class=""> <property name="message" value="hello"/> </bean> ” 这种方式是设置注入 (又称 setter注入) 相当于一个bean工厂,工厂帮你创建好了这个bean对象,然后调用了 setMessage方法将"Hello" 设置到了你的bean对象当中

digital-vm$80/月,最高10GDigital-VM1Gbps带宽带宽

digital-vm在日本东京机房当前提供1Gbps带宽、2Gbps带宽、10Gbps带宽接入的独立服务器,每个月自带10T免费流量,一个独立IPv4。支持额外购买流量:20T-$30/月、50T-$150/月、100T-$270美元/月;也支持额外购买IPv4,/29-$5/月、/28-$13/月。独立从下单开始一般24小时内可以上架。官方网站:https://digital-vm.com/de...

RAKsmart美国洛杉矶独立服务器 E3-1230 16GB内存 限时促销月$76

RAKsmart 商家我们应该较多的熟悉的,主营独立服务器和站群服务器业务。从去年开始有陆续的新增多个机房,包含韩国、日本、中国香港等。虽然他们家也有VPS主机,但是好像不是特别的重视,价格上特价的时候也是比较便宜的1.99美元月付(年中活动有促销)。不过他们的重点还是独立服务器,毕竟在这个产业中利润率较大。正如上面的Megalayer商家的美国服务器活动,这个同学有需要独立服务器,这里我一并整理...

香港 E5-2650 16G 10M 900元首月 美国 E5-2660 V2 16G 100M 688元/月 华纳云

华纳云双11钜惠出海:CN2海外物理服务器终身价688元/月,香港/美国机房,免费送20G DDos防御,50M CN2或100M国际带宽可选,(文内附带测评)华纳云作为一家专业的全球数据中心基础服务提供商,总部在香港,拥有香港政府颁发的商业登记证明,APNIC 和 ARIN 会员单位。主营香港服务器、美国服务器、香港/美国OpenStack云服务器、香港高防物理服务器、美国高防服务器、香港高防I...

依赖注入为你推荐
百度k站百度是怎么样k站的呢?1433端口如何打开SQL1433端口手机区号打电话怎么加区号?唱吧电脑版官方下载唱吧有电脑版的么? 在哪里下载啊?iphone越狱后怎么恢复已经越狱的iphone怎么恢复到原来的系统godaddyGodaddy域名怎么接受ejb开发什么是ejb?ios系统ios系统的手机有哪些?二层交换机二层交换机是什么意思,三层呢网络广告投放怎样在网络上进行广告的投放?
国外虚拟主机 怎样注册域名 传奇服务器租用 vps租用 warez 独享100m 光棍节日志 好看的桌面背景图 建站代码 e蜗牛 ibox官网 gg广告 太原联通测速平台 工信部icp备案号 cdn加速是什么 metalink 香港新世界中心 移动服务器托管 我的世界服务器ip net空间 更多