对IOC的理解

IOC说起来,其实是一种编程思想或原则。相对于传统的编程方式(如从前文到后文这样串行顺序的方式),比如用传统方式,当我依赖一个对象,我要去创建它,对它进行属性配置,然后我才能使用这个对象。
但是对于IOC这种方式来说,它使对象或者组件的创建更为透明,不需要过多的关注细节(如创建对象、给对象设置属性,这些ioc容器都给我们设置好了),以达到解耦的目的。控制反转,简单来理解其实就是把获取依赖动象的方式,交给IOC容器来实现,由主动拉取,变为被动获取。

IOC的主要实现策略

(1)服务定位模式(service locator pattern)

这种模式是Java EE里面所定义的一种模式,通常通过JNDI这种技术获取Java EE的组件,比如说获取EJB组件或者DataSource

(2)依赖注入

依赖注入的几种方式:构造器注入(Constructor Injection)、参数注入(Parameter Injection)、Setter注入(Setter Injection)、接口注入(Interface Injection)

(3)依赖查询

这是有另一种技术来实现的,比如说Java里面有Java Beans技术,Java Beans里面有一个通用的上下文叫做BeanContext,既可以传输bean,也可以管理bean的层次性

(4)模板方法的设计模式

这种设计模式在Spring里面大量的会用的,比如说Spring JDBC会用到JDBC template这样的实现

(5)策略模式

小马哥 IOC学习笔记相关推荐

  1. 【Spring】Spring IOC学习笔记

    Spring IOC Spring简介 Spring理念 使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架 Spring优点 Spring是一个轻量级的 控制反转(IOC) 和 面向切 ...

  2. Spring 之 IoC 学习笔记

    1.为了代码的灵活性,我们一般采用面向接口编程,使用接口定义变量. 2.使用XXXServer 对XXX进行统一的操作,XXXServer   调用  XXX  的  XXXDAOImpl方法进行数据 ...

  3. 《小马哥讲Spring核心编程思想》-第一章学习笔记(1)

    <小马哥讲Spring核心编程思想>-第一章学习笔记(1) 一.课程介绍 1.为什么要学习spring? 2.深入学习spring的难点有哪些? 3.课程的设计思路是怎样的? 二.内容综述 ...

  4. Spring源码学习笔记:Spring设计模式对比和Spring的OOB,BOP,AOP,IOC,DI/DL

    1.博客内容均出自于咕泡学院架构师第三期 2.架构师系列内容:架构师学习笔记(持续更新) 1.GOF 23总设计模式归纳 分类 设计模式 创建型 工厂方法模式(Factory Method).抽象工厂 ...

  5. JavaEE——Spring学习笔记01【Ioc开发的模式】

    JavaEE--Spring学习笔记01[Ioc开发的模式] JavaEE--Spring学习笔记02[Spring和Mybatis的整合] JavaEE--Spring学习笔记03[AOP开发] J ...

  6. atomic原子类实现机制_JUC学习笔记--Atomic原子类

    Atomic 原子操作类包 Atomic包 主要是在多线程环境下,无锁的进行原子操作.核心操作是基于UnSafe类实现的CAS方法 CAS CAS: compareAndSwap :传入两个值:期望值 ...

  7. ASP.NET Core 2 学习笔记(四)依赖注入

    原文:ASP.NET Core 2 学习笔记(四)依赖注入 ASP.NET Core使用了大量的依赖注入(Dependency Injection, DI),把控制反转(Inversion Of Co ...

  8. Android开发六年收获阿里offer定级P7,多亏在阿里P8师兄给的攻略、面试技巧以及学习笔记!!!

    前言 又到了每年的毕业季,应届毕业生在找工作过程对于简历设计和面试技巧有一定的欠缺,这对于求职是比较重要的两个因素,因此掌握一定的面试技巧对于找互联网技术岗位的工作帮助非常大.本篇文章给大家分享一波职 ...

  9. [学习笔记]stm32

    文章目录 一些问题 学习笔记 stm32F1 stm32F4 简介 Cortex内核 Cortex-M4内核 库开发与寄存器开发的关系 STM32 固件库与 CMSIS 标准 内部结构 最小系统 小马 ...

最新文章

  1. 本人在学习PHP过程中的随笔心得
  2. PHP数据结构之——链表
  3. php解决高并发问题
  4. simple k means
  5. 练习4.4、4.5、4.6、4.7
  6. Android平台上使用属性系统(property system)
  7. Python:使用matplotlib进行绘图时中文变成乱码的解决
  8. 全网最新Spring Boot2.5.1整合Activiti5.22.0企业实战教程<监听器篇>
  9. CephOpenstack结合说明操作
  10. 利用密码字典暴力破解渗透目标系统
  11. 高等代数——大学高等代数课程创新教材(丘维声)——1.3笔记+习题
  12. 各种带有物理学特点的把妹法[转]
  13. 泛泛而谈的菜鸟学习记录(六)—— 贴花
  14. 删除K个数字,使剩下的数字串最大(最大数字)
  15. 美国L1签证申请的常见问题解析
  16. 克隆vmware虚拟机
  17. “熵”详细学习笔记——什么是熵?有什么性质?联合熵等其他熵的作用
  18. linux操作系统为SCSI硬盘分区,Linux中硬盘分区的表示方法
  19. openCV【实践系列】5——使用OpenCV进行Delaunay三角剖分
  20. 【高项】风险管理(ITTO)

热门文章

  1. Android开发——AS插件批量解决XML中的String/Color/Dimen硬编码
  2. 【ubuntu】ubuntu添加或删除用户
  3. 公寓民宿(托管)管理系统
  4. vue生命周期每个阶段可以做什么
  5. 如何保护服务器文件安全,如何保护日志服务器安全?
  6. 贩妖记 第三百七十二章,错误线路
  7. windows CMD 下无法跳转指定盘下文件夹的问题【已解决】
  8. html中如何使图片自动旋转90度,css实现图片旋转90度的方法
  9. 成都昭觉寺客运站班期时刻表 班车信息
  10. 可视化+高大上一篇搞定