对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. 腾讯云宣布核心产品全线降价,最高降幅达50%
  2. PHP和OneNet平台交互
  3. Qt中使用线程的几种方式及区别
  4. 相对湿度计算软件_空调工程负荷详细计算方法(附有实例)
  5. ERP流程入门_从会计分录理解企业基本流程[转]
  6. 关于 C 的 arithmetic conversion (进行 算术运算 时的 强制转换规则)
  7. 【CSWS2014 Summer School】大数据下的游戏营销模式革新-邓大付
  8. mysql 本月第几周_Mysql 计算当前日期是本月第几周:一个自定义算法
  9. Qt编写自定义控件:卷轴式数字滚动
  10. 各类邮箱POP3和SMTP服务器地址和端口
  11. 郑强上任后,太原理工大学不断引援!
  12. Connection reset by peer 问题解析
  13. 未来IT人才市场最热门的12项技能
  14. IOS停机卡免流线路下载更新
  15. 网页中LRC歌词同步显示
  16. 1VB编程技术的简介
  17. python第三方插件登录网易音乐_项目实战 | Python开发网易云音乐插件
  18. The Devil Wears Prada-3
  19. ASII码中控制字符CR和LF的含义
  20. 16 Three.js使用dat.GUI简化试验流程

热门文章

  1. 微服务框架(十八)Dubbo领域模型、调用链及调用方式
  2. 工业智能网络交换机性能测试标准和方法
  3. 怎样将应用程序发布到Apple store上去 (四)
  4. okhttp支持https双向认证
  5. Android之父安迪·罗宾传奇经历
  6. 微软服务器的域名,windows更新服务器域名
  7. C语言 编一程序,交换两个字符变量的值并输出
  8. 山东大学 软件学院 2020级 2022年 操作系统 期末考试
  9. python word2vec skipgram 负采样_word2vec中的负采样
  10. 名画03 阎立本《北齐校书图》