spring依赖注入是什么意思?一般用在什么地方?

XIAO 2020-05-02 10:53:42 java常见问答 5658

作为java开发行业的主流开发框架之一,spring一直尤其重要,那么你了解过spring中的特性之一依赖注入吗?一般会体现在什么地方呢?有兴趣的朋友可以一起跟小编来看看呀。

对于依赖的解释:依赖是一种关系,要是一个类依赖另一个类,也就是一个类中有另一个类的引用,class Person中有class Car的引用那就叫Person对Car有一个依赖。

//Person对Car有一个依赖。
class Person
{
    Car car;
    public Person()
    {
        car = new Car();
    }
}

我们再来谈谈什么是依赖注入。一开始学java对于上面的构造方法里面,我们是如何给car引用对象呢?我们的第一反应是什么,new对象吧。这其实也就是我们的习惯思维,调用者来创建被调用者的实例,而在依赖注入的思想里,不是直接new对象了,是通过传递外部引用,也就是通过外部注入依赖。

//外部注入依赖
class Person
{
    Car car;
    public Person(Car car)
    {
        this.car = car;
    }
}

这里面调用者不在控制car的实例的实现了所以叫控制反转(IoC,inversion of control),实际上和依赖注入(DI,DependencyInjection)是一个意思的。

那么我们这么做有什么意义呢?new 对象不是也挺好的吗?

下面我们好好看看为什么要依赖注入,比如上面的person类,如果我的Person类中的car从本来的奇瑞变大奔,我是不是要再修改Person类中的构造方法,是不是超级麻烦,这里面person和car紧密的耦合在一起了,我们也就把它写死了car在Person类中而且new对象过程也很慢的。而通过外部注入依赖的方式我不需要再改Person类中的代码,要写大奔代码,传**入大奔就行了,这也就说明了为什么要依赖注入,因为可以解耦呀。

依赖注入主要的作用: 依赖注入能够让相互协作的软件组件保持松散耦合性。

依赖注入(DI,DependencyInjection),也叫做控制反转(IoC,inversion of control)是Spring框架的核心机制,其相当于心脏对于人的重要性,只有真正理解了这些核心的功能,才有能力去使用spring框架。

Spring中的依赖注入就是上面说的外部,实例不再由程序员去实例化了,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类的。 我们不用关心Car的变化,实例之间的依赖关系由IOC容器负责了,等待Spring依赖注入即可。

以上就是本篇文章的所有内容了,还想了解更多java架构师相关信息,记得赶快来关注本站消息哦。