ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【架构师面试-Java编程基本功-13】-Spring 之依赖注入

2021-12-07 10:02:30  阅读:168  来源: 互联网

标签:容器 13 依赖 Java Spring 构造 Setter IOC 注入


1:什么是 Spring 的依赖注入

控制反转 IOC 是一个很大的概念,可以用不同的方式来实现。其主要实现方式有两种:依赖注入和依赖查找依赖注入:相对于 IOC 而言,依赖注入(DI)更加准确地描述了 IOC 的设计理念。所谓依赖注入(Dependency Injection),即组件之间的依赖关系由容器在应用系统运行期来决定,也就是由容器动态地将某种依赖关系的目标对象实例注入到应用系统中的各个关联的组件之中。组件不做定位查询,只提供普通的Java 方法让容器去决定依赖关系。

2:依赖注入的基本原则

依赖注入的基本原则是:应用组件不应该负责查找资源或者其他依赖的协作对象。 配置对象的工作应该由 IOC 容器负责,“查找资源”的逻辑应该从应用组件的代码中抽取出来,交给 IOC 容器负责。容器全权负责组件的装配,它会把符合依赖关系的对象通过属性(JavaBean 中的 setter)或者是构造器传递给需要的对象。

3:依赖注入有什么优势

依赖注入之所以更流行是因为它是一种更可取的方式:让容器全权负责依赖查询,受管组件只需要暴露 JavaBean 的 setter 方法或者带参数的构造器或者接口,使容器可以在初始化时组装对象的依赖关系。其与依赖查找方式相比,主要优势为:

查找定位操作与应用代码完全无关。

不依赖于容器的 API,可以很容易地在任何容器以外使用应用对象。

不需要特殊的接口,绝大多数对象可以做到完全不必依赖容器。

4:有哪些不同类型的依赖注入实现方式?

依赖注入是时下最流行的 IOC 实现方式,依赖注入分为接口注入(Interface Injection),Setter 方法注入(Setter Injection)和构造器注入(Constructor Injection)三种方式。其中接口注入由于在灵活性和易用性比较差,现在从 Spring4 开始已被废弃。

构造器依赖注入:构造器依赖注入通过容器触发一个类的构造器来实现的, 该类有一系列参数,每个参数代表一个对其他类的依赖。

Setter 方法注入:Setter 方法注入是容器通过调用无参构造器或无参static 工厂 方法实例化 bean 之后,调用该 bean 的 setter 方法,即实现了基于 setter 的依赖注入。

5:构造器依赖注入和Setter方法注入的区别

两种依赖方式都可以使用,构造器注入和Setter方法注入。最好的解决方案是用构造器参数实现强制依赖,setter方法实现可选依赖。 

标签:容器,13,依赖,Java,Spring,构造,Setter,IOC,注入
来源: https://blog.csdn.net/chongfa2008/article/details/121724331

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有