什么意思(di是什么意思)
什么是IoC?
控制反转是软件工程中的一项原则,它将对象或者程序的部分控制权转移到容器或框架上。我们最常在面向对象编程的上下文中使用它。
与我们自定义代码调用库的传统编程相比,IoC使框架能够控制程序流并调用我们的自定义代码。为了实现这一点,框架使用了带有附加行为的抽象。如果我们想添加我们自己的行为,我们需要扩展框架的类或插入我们自己的类。
IoC的优点是:将任务的执行与其实现分离更容易在不同的实现之间切换程序的模块化程度更高通过隔离组件或者模拟其依赖项,并允许组件通过协议进行通信,从而更轻松地测试程序
我们通过各种机制来实现控制反转,例如:策略设计模式、服务定位器模式、工厂模式和依赖注入(DI)。什么是DI?
依赖注入是一种我们可以用来实现IOC的模式,其中被反转的控制是设置对象的依赖关系。将对象与其他对象联系,或将对象"注入"到其他对象中。
传统的编程中船舰对象依赖是这样的:
在上面的示例中,我们需要在Todo类本身中实例化Item接口的实现。
而通过使用DI,它是这样的:
通过使用DI,我们无需指定我们想要的Item的实现。
接下来我们将演示如何通过注解提供Item的实现。Spring IoC容器
在Spring中,接口ApplicationContext表示IoC容器。Spring容器负责实例化、配置和组装成为bean的对象,以及管理他们的生命周期。
Spring提供了ApplicationContext接口的几种实现:ClassPathXmlApplicationContext和FileSystemXmlApplicationContext用于独立的应用程序,以及WebApplicationContext用于Web应用程序。
为了组装bean,容器使用配置元数据,可以是XML配置或者注解的形式。
这是手动实例化容器的一种方式:
要在上面的示例中设置Item的属性,我们可以使用元数据。然后容器将读取此元数据并在运行时使用它来组装bean。
Spring的依赖注入可以通过构造函数、setter或属性来完成。基于构造函数注入
基于Setter注入
基于对象属性注入
相对于其他两种方式,这种方式可能看起来更简单、更干净,但是不建议使用它,因为它有一些缺点,例如:此方法使用反射来注入依赖项,这比基于构造函数或基于setter的注入成本高
如果我们想代码看起来简单干净可以是用Lombok的@RequiredArgsConstructor和@NonNull来实现构造函数注入:
可以在 Martin Fowler 的文章或Spring官网中阅读更多关于这些概念的信息:控制容器反转和依赖注入模式 https://martinfowler.com/articles/injection.html控制反转 https://martinfowler.com/bliki/InversionOfControl.htmlSpring 框架参考文档 https://docs.spring.io/spring-framework/docs/current/reference/html/#beans-dependencies
为什么跟父姓(为什么全世界都随父姓)子女随父姓,是保护母亲的做法。读完这篇你将从唯物主义和伦理学高度知道为什么冠父姓是保护女性。1父系冠姓权产生的客观性。古代,男人是永远无法确定,女人生下的孩子是不是自己的而孩子他妈
为什么男人时间短(以前正常突然时间变短)点击头像六层楼医生,学习更多女性健康知识和两性交往知识哦图片来源疯狂动物城责任编辑柴君原创文章,未经许可,请勿转载商务合作敬请联系business6team163。com导言我要你
tara为什么这样(tara音译歌词)爱豆新闻讯TARA(孝敏居丽智妍与恩静)方面表示组合崩溃并不是事实。孝敏居丽智妍与恩静的法定代理人张千(音译)律师在22日通过YTNSTAR表示TARA的4人活动停止并不是事实。4
我是海雅谷慕(海雅谷慕是什么意思)我是海雅谷慕(海雅谷慕是什么意思)帽子耳钉墨镜,络腮胡和黝黑的肤色,上半身穿着简单的T恤,再搭一条牛仔裤。十几年,他的装扮未曾变过。他曾有很多首歌火遍海峡两岸,也曾一年半巡演五十几
强迫性神经症(强迫症全天都在焦虑)强迫性神经症(强迫症全天都在焦虑)强迫症的病因复杂,尚无定论。目前认为主要与心理社会个性遗传及神经内分泌等因素有关。强迫症患者个性中或多或少存在追求完美,对自己和他人高标准严要求的
吹笙鼓簧(吹笙鼓簧的通俗意思)吹笙鼓簧(吹笙鼓簧的通俗意思)诗经是中国第一部诗歌总集,在中国乃至世界文化史上都占有重要地位。它描写现实反映现实的写作手法,开创了诗歌创作的现实主义优良传统,影响了宋代文人的审美偏
魔兽世界为什么不火了(魔兽世界停更)经过了长达两年的调查后,游戏界巨头动视暴雪(ActivisionBlizzard)在上周被美国加州公平就业和住房部(CaliforniaDepartmentofFairEmploy
为什么这样tara(tara朴素妍为什么退出了)大家听说过Tara女团嘛?当时的Tara女团是非常的火的,它的火热程度直逼少女时代,曾经很多人认为能接替少女时代并创造历史的一定是Tara女团,就在她们再创事业巅峰的时候,就发生了
融资租赁为什么资产(融资租赁资产)经营租赁和融资租赁的主要区别是什么(1)目的不同。经营租赁是承租人单纯为了满足生产经营上短期或临时的需要而租入资产融资租赁以融资为主要目的,承租人有明显购置资产的企图。(2)风险和
为什么叫肖申克的救赎(肖申克的救赎心理元素)说起高分电影,肖申克的救赎永远是影史第一。自1994年上映以来,二十多年过去了,优秀的电影层出不穷,但肖申克的救赎却能一直站在影史排名的顶端。一部牢狱题材的电影,凭什么让人们不断重
为什么那么爱睡觉(一个人爱睡觉有什么心理原因)1贫血,其危险征兆表现为贪睡伴面色苍白贫血(anemia)是指人体外周血红细胞容量减少,低于正常范围下限的一种常见的临床症状。贫血的病因,血液携氧能力下降的程度,血容量下降的程度,
薏米需要泡多久(如何泡薏米)薏仁水作为一种祛湿好物,相信大家都对它的功效有亲身经历。根据本草纲目记载,薏仁性甘,微寒,无毒。利肠胃,消水肿,止消渴,杀蛔虫,健脾益胃,补肺清热,去风胜湿,久服轻身益气,它被归为
幸福消失了多久(幸福狐狸现状)关于广东幸福狐狸内衣设计有限公司擅自使用我司相关资质信息的声明近日,我司注意到一家自称为广东幸福狐狸内衣设计有限公司(以下简称幸福集团)的公司在2018年8月5日于香港亚洲博览馆召
背头留多久(37分背头头发留多长)飞机头发型适合什么脸型?阿辉答子弹头,别称飞机头。子弹头的主要特征为头顶发丝直立隆起,无刘海,两鬓逐渐向头顶收拢,有的甚至刮白,脑后略保留短发,耳后干净。整体看来呈子弹一样的流线型
修变速箱多久(07年本田飞度变速箱坏的症状)时间就是金钱。变速箱坏了,谁能心平气和地等上五六天甚至十天半个月来维修?可是通常情况下车主只能被动接受。如果有人说,变速箱故障一天就能修好,你信吗?变速箱故障维修到底要多长时间能修
宝宝补锌补多久(补锌后智力会恢复吗)宝宝厌食缺锌吗?医生来辟谣育儿科普中,医生和营养专家曾经反复建议,孩子不能缺锌,也不可以烂补锌。但是,现实版就与专家观点大相径庭了,提到孩子的微量元素锌,家长们都是一头雾水,就如同
智能家居必不可少近日智能家居登录了热搜,也是在网上引起了网友们的关注,那么很多小伙伴可能还不清楚具体的情况如何,小编也是在网上查阅了一些信息,那么接下来就分享给大家来了解下智能家居具体的情况吧冰箱
s号用多久(s型纸尿裤能用多久)以下我整理一下NB码和S码纸尿裤的用量以及使用感受分享给大家NB码3。54。23(50天),7斤11斤,50cm60cm,大概使用了400片左右的NB码纸尿裤(品牌有爸爸的选择,好
吉凶悔吝(吉凶悔吝的简单解释)吉凶悔吝(吉凶悔吝的简单解释)大家好,这里是小播读书,今天我要和大家分享的这本书,是著名的思想家古文字学家南怀瑾老师的历史的经验。01hr这本书的书名是历史的经验,其实著名的思想家
公积金多久可以用(公积金必须满2万才能用吗)住房公积金交多久可以贷款买房?按规定正常足额缴存住房公积金,且在申请贷款时已连续缴存六个月(含)以上。住房公积金交多久可以贷款买房答案6个月以上。只有缴存了公积金才可以申请公积金贷
首尔的智能家居可以叫电梯去干衣服近日首尔的智能家居登录了热搜,也是在网上引起了网友们的关注,那么很多小伙伴可能还不清楚具体的情况如何,小编也是在网上查阅了一些信息,那么接下来就分享给大家来了解下首尔的智能家居具体
智能家居提供商Homee成为电力提供商近日智能家居提供商Homee登录了热搜,也是在网上引起了网友们的关注,那么很多小伙伴可能还不清楚具体的情况如何,小编也是在网上查阅了一些信息,那么接下来就分享给大家来了解下智能家居