控制反转和依赖注入的区别
答案:2 悬赏:60 手机版
解决时间 2021-02-14 15:49
- 提问者网友:难遇难求
- 2021-02-14 00:37
控制反转和依赖注入的区别
最佳答案
- 五星知识达人网友:执傲
- 2021-02-14 01:23
依赖注入(Dependency Injection)和控制反转(Inversion of Control)是同一个概念。具体含义是:当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入。
不管是依赖注入,还是控制反转,都说明Spring采用动态、灵活的方式来管理各种对象。对象与对象之间的具体实现互相透明。在理解依赖注入之前,看如下这个问题在各种社会形态里如何解决:一个人(Java实例,调用者)需要一把斧子(Java实例,被调用者)。
不管是依赖注入,还是控制反转,都说明Spring采用动态、灵活的方式来管理各种对象。对象与对象之间的具体实现互相透明。在理解依赖注入之前,看如下这个问题在各种社会形态里如何解决:一个人(Java实例,调用者)需要一把斧子(Java实例,被调用者)。
全部回答
- 1楼网友:迟山
- 2021-02-14 01:32
概念:
控制反转(inversion of control,英文缩写为ioc)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的spring框架的核心。 控制反转一般分为两种类型,依赖注入(dependency injection,简称di)和依赖查找(dependency lookup)。依赖注入应用比较广泛。
依赖注入:组件不做定位查询,只提供普通的java方法让容器去决定依赖关系。容器全权负责的组件的装配,它会把符合依赖关系的对象通过javabean属性或者构造函数传递给需要的对象。通过javabean属性注射依赖关系的做法称为设值方法注入(setter injection);将依赖关系作为构造函数参数传入的做法称为构造子注入(constructor injection)
区别:
控制反转:创建对象实例的控制权从代码控制剥离到ioc容器控制,实际就是你在xml文件控制,侧重于原理。
依赖注入:创建对象实例时,为这个对象注入属性值或其它对象实例,侧重于实现。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯