什么意思(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
今日南阳羊肉价格行情(羊肉价格多少钱一斤)今日牛肉价格多少钱一斤,今年3月黄牛价格一19元,今日羊肉价格多少钱一斤今年3月17日各地羊肉价格行情出自湖南特产网时间点击45羊肉对我国大部分地区来说都是一种高价格的肉类,羊价突
许佳琪孔雪儿粉丝许佳琪孔雪儿粉丝关于到现在许佳琪孔雪儿粉丝这个话题,相信很多小伙伴都是非常有兴趣了解的吧,因为这个话题也是近期非常火热的,那么既然现在大家都想要知道许佳琪孔雪儿粉丝,小编也是到网上收集了一些与许佳
猪肉白菜炖粉条(东北猪肉炖粉条白菜怎么做)猪肉白菜炖粉条(东北猪肉炖粉条白菜怎么做)猪肉白菜炖粉条食材五花肉,粉条,白菜,大葱,2个八角,1个桂皮步骤1粉条用凉水泡发(粉条足够筋道也可以选择开水)。2五花肉切肉片。3白菜把
大白菜怎么做好吃(醋溜白菜怎么炒)炒醋溜白菜,先放醋还是先炒白菜?大厨分享正确做法,看完明白了。亲爱的好朋友们,大家好,我是大厨江一舟,今天又到了,给大家分享美食的时刻了,你们准备好了吗?醋溜白菜是一道,特别家常的
教大家李子吃了对身体好吗近日有关于教大家李子吃了对身体好吗的问题受到了很多网友们的关注,大多数网友都想要知道教大家李子吃了对身体好吗的具体情况,那么关于到教大家李子吃了对身体好吗的相关信息,小编也是在网上
三代身份证什么时候换(强制换第三代身份证)乌鲁木齐晚报全媒体讯(记者刘青霞)10月19日,乌鲁木齐市公安局人口管理支队友情提示目前全市有4461名市民的身份证即将到期,请提前换领,以免给工作和生活带来不便。第二代居民身份证
猛兽侠犀牛为什么背叛(第三代黑猩猩队长好弱)前言在猛兽侠(超能勇士,变形金刚之野兽之战)中,犀牛勇士(将军吉星)是巨无霸中的二当家除了黑猩猩以外,他的地位最高除了黑猩猩以外,也只有他可以压制恐龙勇士。他不光拥有出色的战斗力,
三代头孢有哪些(口服头孢三代哪种效果好)头孢类药物特点1头孢菌类抗生素是半合成光谱抗生素(广谱就是对革兰氏阳性和阴性菌都有作用)2根据头孢菌素类抗生素对革兰氏阴性作用特性可分为五代第一代头孢抗菌谱同氨苄青霉素阿莫西林差不
什么东西好吃又吃不胖(吃什么长胖最快的速度)夏天到了,身上的肉肉再也藏不住了,很多人在朋友圈发出豪言壮语不减十斤不换头像,然而没过两天,就看到他们在朋友圈询问,减肥期间嘴馋怎么办?有没有解馋又不胖的小零食推荐一下呢?想减肥的
减肥可以吃什么零食(不会发胖的零食推荐)春天来了,你是不是在整理衣柜时,发现衣服小了一码?这哪里是衣服小了一码!明明是自己身材长胖了一码,呜呜俗话说三月不减肥,六月徒伤悲是时候和积攒了一整个冬天的赘肉说拜拜了,不仅为了穿
孕妇嘴馋能吃什么零食(孕妇吃什么零食最好)炎炎夏日,还有什么比全家人一起吹空调吃零食更舒服呢?不过,孕期可以吃零食吗?吃什么零食好呢?孕妈选购零食的3大原则营养第一食用符合宝宝营养需求的零食。新鲜度要特别保质期近效期,开封
运营是什么(电商运营多少钱一个月)大部分电商公司都不清楚运营是什么,困扰你的正是你的机会!如果你的工作是完全通过别人量化出来的,你个人的成长终会受到限制。即使做在久也只是1W左右的水平。一环境现状运营早已不是什么新
钱包什么牌子好(韩国的gucci便宜吗)来咯!今天是你们催了好久的大牌包包安利,均价不过万的那种!毕竟打工人省吃俭用买几万块的包包不太现实,其实大牌包有挺多实用又好看的款式,几千块价格很香,不少明星ins博主都在背大家比
女士钱包什么牌子好(女士手机包钱包)源瑞丽伊人风尚(文fancy)品牌每个季度出的新款包包我们都会第一时间。去年BV的TheChianPouch和Prada的HoboBag可以说是火遍每一条大街。但今年到目前为止,似
ktv音响什么牌子好(专业卡拉ok音响什么牌子好)张启东家庭ktv音响套装哪个品牌的音质好?很多消费者热爱唱歌,对音响设备有一定的要求,觉得在家里唱歌更为方便环境更舒适,所以就选择家庭KTV音响套装。但是在选择家庭KTV音响套装的
口红什么牌子(口红价格档次排名)在物价飞涨的时代很多商品价格已经翻了好几倍,口红也不例外,虽然几百的口红也不算太贵,毕竟一支口红可以用很久,但是爱美的小仙女一根口红是远远不够的,所以数量多了的话,几百的口红买起来
冰箱什么牌子的好(世界排名第一的冰箱)1西门子西门子是一个有着百年历史的老品牌,也是财富世界500强榜单中排名70的企业,它的产品一直都是以可靠性和高超的技术闻名。他们家的冰箱外观都特别干净,储存设计非常宽敞,通过制冷
口红哪个贵(大牌口红为什么那么贵)随着化妆越来越普及,口红也成了女人出门的必备品。吃饭的时候,识别一个女生是否已经吃饱了,大概就是看她有没有拿出口红开始涂吧。所以,爱好口红的你,是否知道世界十大奢华口红品牌都有哪些
什么口红比较好(国产口红什么牌子好)编辑小羊哈喽,大家好,我是小羊,带你一起了解时尚了解美。富家女风从去年开始就一直很流行,到今年夏天也依旧大火。特别是周也,简直就是富家女妆容的代表妆,特别兰蔻彩妆的那组大片,妆面的
哪个牌子的口红好(中年女性用什么样的口红)编辑小颜哈喽,大家好,我是小颜,带你一起了解时尚了解美。冬天的时候,我们的衣柜里都被各种黑灰棕的颜色给占满了,这时候就需要一抹口红来拯救我们沉闷的穿搭。说到口红,很多姐妹们第一个想
口红为什么不能送一支(送口红是想暗示啥)众所周知,口红是女性的私密物品,女人出门可以不化妆,可以穿得普普通通,但一定要涂口红。那么,男人送女人口红代表什么意思?口红为什么不能送一支有什么寓意吗?男生送口红为什么一定要送大
爱玛电动车质量(雅迪和爱玛哪个更耐用)爱玛电动车质量(雅迪和爱玛哪个更耐用)最近有很多关于爱玛的负面消息,不是说车子后期服务不好,就是说买到的爱玛电动车存在质量问题,虽然算不上铺天盖地,但也给爱玛电动车的品牌造成了很大