我们都知道,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到底是啥相关推荐

  1. 用IDEA详解Spring中的IoC和DI(挺透彻的,点进来看看吧)

    用IDEA详解Spring中的IoC和DI 一.Spring IoC的基本概念 控制反转(IoC)是一个比较抽象的概念,它主要用来消减计算机程序的耦合问题,是Spring框架的核心. 依赖注入(DI) ...

  2. 请简述什么是spring的ioc和di_理解Spring中的IoC和DI

    什么是IoC和DI IoC(Inversion of Control 控制反转):是一种面向对象编程中的一种设计原则,用来减低计算机代码之间的耦合度.其基本思想是:借助于"第三方" ...

  3. java spring server_Java server框架之(1):spring中的IoC

    为什么需要IoC? 一般的对象耦合是在编译时确定的,也就是说当我们写如下类: 1 public classStaticCoupling { 2 3 String s = new String(&quo ...

  4. java spring server_java server之spring中的IOC如何用java实现?

    ** 什么是IOC? 一般的对象耦合是在编译时确定的,也就是说当我们写如下类: public class StaticCoupling { String s = new String("hz ...

  5. Spring中的IOC是什么意思,为什么要用IOC而不是New来创建实例?

    这里是修真院后端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析后端知识/技能,本篇分享的是: Spring中的 ...

  6. Spring中的IOC介绍

    Spring中的IOC介绍 IOC(控制反转) IOC介绍 IOC是什么 IOC能做什么 Spring容器管理对象 1.maven管理依赖 2.给定容器的配置文件 3.IOC容器管理对象 4.通过容器 ...

  7. Spring中的IoC(2)

    Spring中的IoC(2) 依赖注入(Dependency Injection) IOC的作用: 降低程序间的耦合(依赖关系) 依赖关系的管理: 以后都交给spring来维护在当前类需要用到其他类的 ...

  8. Spring中的IoC(控制反转)和DI(依赖注入)

    一.Spring IoC的基本概念 控制反转(IoC) 是一个比较抽象的概念,它主要用来消减计算机程序的耦合问题,是Spring框架的核心. 依赖注入(DI) 是IoC的另外一种说法,只是从不同的角度 ...

  9. 谈谈Spring中的IOC、DI和AOP概念

    看了大神的解释感觉受益匪浅,所以就将其保存,方便自己看,并最后总结出自己的理解 1. IOC(Inverse of Control):控制反转,也可以称为依赖倒置. 所谓依赖,从程序的角度看,就是比如 ...

最新文章

  1. TensorRT学习笔记(三)
  2. android6.0源码分析之Activity启动过程
  3. 从变分编码、信息瓶颈到正态分布:论遗忘的重要性
  4. openssh登陆时提示服务器拒绝了密码
  5. “凡尔赛文学”疯狂刷屏!数学家们也拼命“装”了起来,哈哈哈哈哈
  6. 【C++学习笔记三】C++多态、抽象(接口)
  7. 博客日历的html代码,八种精美的博客日历代码
  8. Burpsuite Professional安装及使用教程(抓包)
  9. 移动APP中那些关乎用户体验的测试项
  10. QQ消息 pc端防撤回
  11. 使用RF测试时,如何自动关闭浏览器驱动进程
  12. 微信投票python脚本_微信刷票Python脚本教程
  13. 膜拜性转帖: C++11有关的(现在用的编译器都是不太支持C++11的)
  14. 拉格朗日对偶性(Lagrange duality)
  15. fleck 客户端_Fleck - 又一个灵感之源 #iPhone
  16. 【AI绘图】来体验了下AI绘图
  17. 一种改进的教与学优化算法
  18. javascript 0基础入门
  19. 开启Fluter基础之旅二-------Future再论、常用组件、Material Design风格组件学习
  20. rk3399 hdmi HDCP key烧录

热门文章

  1. 2018.07.30 bzoj4355: Play with sequence(线段树)
  2. mysql 实数型变量定义,MySQL实数类型使用注意事项
  3. 无线网络技术导论笔记(第三讲)
  4. 给女朋友做个聊天机器人,这样就能安心写代码了
  5. python发邮件给女朋友代码_用python讨好女朋友是什么个操作?
  6. mac m1 网络卡顿问题(微信有网浏览器没网)
  7. jsp+ssm计算机毕业设计宠物狗领养网站【附源码】
  8. 和菜头:放开那些员工
  9. 当年锥子的大爆炸,如今12个语言版本都可轻松搞定!
  10. 利用Python实现视频号自动赚钱一条龙