Spring中的Ioc、DI到底是啥
我们都知道,Spring是一款轻量级的IOC框架,Spring的核心就是Ioc和DI,并通过俩者解耦。
那么,Ioc、DI呢?
Ioc 控制反转
Ioc(Inversion of control)控制反转,这里的控制指把控制权从应用程序中剥离出来。ioc它可以把创建对象和查找依赖对象的权限交给Ioc容器控制,而不是传统的由这些对象的使用方(消费者)进行创建初始化操作。IoC是一种让服务消费者不直接依赖于服务提供者的组件设计方式,是一种减少类与类之间依赖的设计原则。
为什么Ioc叫控制反转呢,反转了什么呢?传统的程序都是消费者主动创建对象,现在容器帮我们查找及注入依赖对象,而消费者只是被动的接受依赖对象,此为反转。
DI 依赖注入
DI(Dependency Injection)依赖注入,指容器复制创建和维护对象之间的依赖关系,而不是通过对象本身复制自己的创建和解决自己的依赖。控制反转是通过依赖注入实现的。
其实Ioc和DI在Spring中是一个等同的概念。如果非要咬文嚼字的话,控制反转是依赖注入的一部分,或者说是同一个行为偏重点不同的俩个称呼。
他们是从不能的角度阐述同一个功能,描述的对象不同而已。依赖注入是从程序本身来说,控制反转是从容器来说的。
Spring的实现
Spring Ioc容器(ApplicationContext)负责创建Bean,并通过容器将这些创建的Bean注入到需要他们的消费者Bean中。Spring提供使用Xml、注解ava配置的方式创建和注入,容器解析这些配置信息进行Bean的初始化,配置和依赖管理。
申明Beand的注解
- @Comonet 没有明确声明角色的功能
- @Service 在业务逻辑层使用
- @Repository 在数据操作层使用
- @Controller 在表现层(SpringMvc中)使用,其中RestControlelr也是一样的含义
以上四个注解在功能是是相同的,他们唯一的区别只是从字面上了区分申明的Bean的功能。
注入Bean的注解
- @Autowired
- @Injet
- @Resource
以上三个注解的功能也是一样的,其中@Autowired
是Spring提供的。
Spring中的Ioc、DI到底是啥相关推荐
- 用IDEA详解Spring中的IoC和DI(挺透彻的,点进来看看吧)
用IDEA详解Spring中的IoC和DI 一.Spring IoC的基本概念 控制反转(IoC)是一个比较抽象的概念,它主要用来消减计算机程序的耦合问题,是Spring框架的核心. 依赖注入(DI) ...
- 请简述什么是spring的ioc和di_理解Spring中的IoC和DI
什么是IoC和DI IoC(Inversion of Control 控制反转):是一种面向对象编程中的一种设计原则,用来减低计算机代码之间的耦合度.其基本思想是:借助于"第三方" ...
- java spring server_Java server框架之(1):spring中的IoC
为什么需要IoC? 一般的对象耦合是在编译时确定的,也就是说当我们写如下类: 1 public classStaticCoupling { 2 3 String s = new String(&quo ...
- java spring server_java server之spring中的IOC如何用java实现?
** 什么是IOC? 一般的对象耦合是在编译时确定的,也就是说当我们写如下类: public class StaticCoupling { String s = new String("hz ...
- Spring中的IOC是什么意思,为什么要用IOC而不是New来创建实例?
这里是修真院后端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析后端知识/技能,本篇分享的是: Spring中的 ...
- Spring中的IOC介绍
Spring中的IOC介绍 IOC(控制反转) IOC介绍 IOC是什么 IOC能做什么 Spring容器管理对象 1.maven管理依赖 2.给定容器的配置文件 3.IOC容器管理对象 4.通过容器 ...
- Spring中的IoC(2)
Spring中的IoC(2) 依赖注入(Dependency Injection) IOC的作用: 降低程序间的耦合(依赖关系) 依赖关系的管理: 以后都交给spring来维护在当前类需要用到其他类的 ...
- Spring中的IoC(控制反转)和DI(依赖注入)
一.Spring IoC的基本概念 控制反转(IoC) 是一个比较抽象的概念,它主要用来消减计算机程序的耦合问题,是Spring框架的核心. 依赖注入(DI) 是IoC的另外一种说法,只是从不同的角度 ...
- 谈谈Spring中的IOC、DI和AOP概念
看了大神的解释感觉受益匪浅,所以就将其保存,方便自己看,并最后总结出自己的理解 1. IOC(Inverse of Control):控制反转,也可以称为依赖倒置. 所谓依赖,从程序的角度看,就是比如 ...
最新文章
- TensorRT学习笔记(三)
- android6.0源码分析之Activity启动过程
- 从变分编码、信息瓶颈到正态分布:论遗忘的重要性
- openssh登陆时提示服务器拒绝了密码
- “凡尔赛文学”疯狂刷屏!数学家们也拼命“装”了起来,哈哈哈哈哈
- 【C++学习笔记三】C++多态、抽象(接口)
- 博客日历的html代码,八种精美的博客日历代码
- Burpsuite Professional安装及使用教程(抓包)
- 移动APP中那些关乎用户体验的测试项
- QQ消息 pc端防撤回
- 使用RF测试时,如何自动关闭浏览器驱动进程
- 微信投票python脚本_微信刷票Python脚本教程
- 膜拜性转帖: C++11有关的(现在用的编译器都是不太支持C++11的)
- 拉格朗日对偶性(Lagrange duality)
- fleck 客户端_Fleck - 又一个灵感之源 #iPhone
- 【AI绘图】来体验了下AI绘图
- 一种改进的教与学优化算法
- javascript 0基础入门
- 开启Fluter基础之旅二-------Future再论、常用组件、Material Design风格组件学习
- rk3399 hdmi HDCP key烧录