java spring中DIP是什意思?DI的含义是什么?

BSO 2020-10-09 15:56:55 java常见问答 7974

在科学技术水平不断进步发展的今时今日,各种新兴软件不断涌现,这也刺激了人们对于新技术学习的欲望。学习java的人也越来越多。今天就来为大家介绍一些基础知识,也就是java中DIP是什意思以及DI的含义是什么?一起来了解一下吧。

首先说一下DIP

1.DIP:DIP(依赖倒置原则)是DI(依赖注入)的核心。

(1)高层模块不应该依赖于低层模块。两者都应该依赖于抽象

(2)抽象不应该依赖于细节。细节应该依赖于抽象。

也就是将对具体类的引用转换成对其接口的引用,具体类只引用接口(引用=依赖,接口=接口或抽象类)。事实上我们调用具体类的时候在头脑里也是只关心其提供的API而非实现,DIP则通过在设计和重构阶段在技术手段上保证了解耦。

然后说一下DI

2.DI:DI(依赖注入)让我们不必手写工厂代码来管理接口和实现类的映射、对象的创建和生命周期的管理。

(1)接口注入:必须实现特定的接口才可以,侵入性太强,现在基本没人使用。

(2)构造函数注入:依赖体现在构造函数的参数上。

(3)属性注入:依赖体现在属性上。

由于在实现时,可以将类型注册为自己的兼容类型,这样依赖注入就可以直接替代new实例化对象,这样理解和使用依赖注入工具还不如不使用或手写工厂了。

依赖注入工具在实现时肯定会实现成一个支持不同配置和不同生命周期的对象工厂,但即使没有提供一套添加依赖倒置原则限制的API,也不意味着我们把它当成new的替代品。如同映射工具虽然在实现时可以任意映射,但不是用来取代赋值的,而是用来处理领域实体和视图模型等有实际对应关系的对象之间的映射。

(1)依赖配置:依赖配置是依赖注入实现的基础。依赖注入工具都至少支持代码配置和文件配置。Java中可以通过Annotation(.NET中通过Attribute)简化配置。

(2)对象工厂:根据配置返回一个或多个对象。这是核心功能。

(3)生命周期管理:一般提供至少4种级别的支持:作用域、单例、线程、HTTP请求范围。

大多数依赖注入工具在支持依赖倒置原则的基础上,在技术手段上实现了更多的功能,如类型的兼容转换、对依赖命名、在配置时直接传入对象等。

以上就是关于java spring中DIP是什意思以及DI的含义是什么的主要内容了。如果你对java知识感兴趣,想要了解更多java基础以及常见问题,敬请关注奇Q工具网。

推荐阅读:

java spring依赖注入有哪些缺点?升级版新特征是什么?

java spring依赖注入方式有哪几种?有什么区别?

java spring中Setter方法注入怎么操作?实例代码展示