1. IOC(Inversion of control)不是技术,是一种编程思想。ioc意味着将设计好的对象交给容器控制,而不是传统的在对象内部直接控制。

2. IOC(控制反转)  ‘谁控制了谁 控制什么 为什么是反转 那些方面反转了’

        谁控制谁:IOC容器控制了对象

        控制什么:控制了外部资源获取

        为什么是反转:IOC容器帮助查找及注入依赖对象,对象只是被动的接受依赖对象

        那些方面反转:依赖对象获取被反转

DI(依赖注入):“谁依赖谁 为什么需要依赖 谁注入谁 注入了什么”

        谁依赖谁:应用程序依赖于ioc容器

        为什么需要依赖:应用程序需要ioc容器来提供对象需要的外部资源

        谁注入谁:Ioc容器注入应用程序某个对象,应用程序依赖的对象

        注入了什么:注入某个对象所需要的外部资源

3. AOP(面向切面):AOP是一种编程思想,在java中利用反射机制实现

    事先只需要考虑主流程,不需要考虑哪些不重要的流程。

    AOP不会把代码加到源文件中,但是它最终会正确的影响机器代码

转载于:https://www.cnblogs.com/wangdx1107/p/10245451.html

控制反转(ioc)和 面向切面(AOP)相关推荐

  1. Spring 概念及特点 Spring下载地址 控制反转IoC实现原理

    Spring下载地址 http://repo.springsource.org/libs-release-local/org/springframework/spring/ Spring是开源full ...

  2. 控制反转(Ioc)和依赖注入(DI)

    控制反转IOC, 全称 "Inversion of Control".依赖注入DI, 全称 "Dependency Injection". 面向的问题:软件开发 ...

  3. 前端解读控制反转(IOC)

    前言 随着前端承担的职责越来越重,前端应用向着复杂化.规模化的方向发展.大型项目模块化是一种趋势,不可避免模块之间要相互依赖,此外还有很多第三方包.这样的话如何去管理这些繁杂的文件,是一个不可避免的话 ...

  4. 控制反转(IoC)与依赖注入(DI)详解

    文章目录 什么是控制反转(IoC) 控制反转(IoC)有什么作用 控制反转(IoC)是怎么分类的 依赖注入 接口注入 Setter方法注入 构造器注入 依赖查找 上下文依赖查找(Contextuali ...

  5. 控制反转IOC、依赖注入DI的详细说明与举例

    文章目录 引入 IOC介绍 IOC的实现 通过构造函数注入依赖 通过 setter 设值方法注入依赖 依赖注入容器 IOC优缺点 优点 缺点 阅读时忽略语言差异,参考了很多其他博主内容,参考博文在最后 ...

  6. 浅析Spring——控制反转IoC

    目录 1. IoC理论推导 2. 什么是IoC? 3. 引入DI 4. IoC容器 5. 注入对象的四种方法 1.基于接口 2.基于setter 3.基于构造函数 4.基于注解 6. 两种IoC实现方 ...

  7. 依赖倒置(DIP),控制反转(IoC)与依赖注入(DI)

    DIP,IoC与DI概念解析 依赖倒置 DIP(Dependency Inversion Principle) DIP的两大原则: 1.高层模块不应该依赖于低层模块,二者都应该依赖于抽象. 2.抽象不 ...

  8. 控制反转IOC与依赖注入DI

    为什么80%的码农都做不了架构师?>>>    1. IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最 ...

  9. 控制反转 java_控制反转( Ioc)快速入门

    2.1 什么是控制反转(IOC:Inverse of Control) IOC反转控制,实际上就是将对象的创建权交给了Spring,程序员无需自己手动实例化对象. 可以看出来工厂的作用就是用来解耦合的 ...

  10. PHP依赖注入(DI)和控制反转(IoC)详解

    这篇文章主要介绍了PHP依赖注入(DI)和控制反转(IoC)的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 首先依赖注入和控制反转说的是同一个东西,是一种设计模式,这种设计模式用来减少程 ...

最新文章

  1. 宝塔linux面板php配置教程,「大商创安装」大商创X宝塔linux面板安装配置教程
  2. [armv9]-ARM最新架构为memcpy/memset底层的实现提供新的指令
  3. 简单一致的Log4j2 Logger命名
  4. 写一篇好的技术文章有多难?
  5. 又是一天,这次是网页显示的问题
  6. 【水】HDU 2099——整除的尾数
  7. 聊聊hystrix的semaphore.maxConcurrentRequests属性
  8. Dev-cpp5.4.0安装及下载
  9. Scrum板与Kanban如何抉择?adpoqqrql板与按照zbocyo
  10. java 拉姆达表达式_一看就懂之java8新特性函数式编程:我是拉姆达表达式lambda...
  11. 空城旧梦,相逢不必邂逅
  12. 【南宋】【文天祥】正气歌
  13. 5960 差分约束系统
  14. Illegal character: U+00A0
  15. 竹笛的分类有哪些?来认识竹笛的大家族。
  16. MySql表的基本增删改查详解
  17. Lost in Island
  18. Nginx常见错误代码总结和处理方案
  19. LaTex 数学公式中的空格
  20. 反垃圾邮件网关的选型标准考量录

热门文章

  1. Eclipse中怎样修改jar包的源码并将原jar包替换
  2. 若依微服务版怎样实现不同业务模块下实体和mapper互相调用
  3. SourceTree安装破姐添加SSH KEY以及拉取代码教程(附资源下载)
  4. DevExpress的下拉框控件LookUpEdit的使用、添加item选项值、修改默认显示值
  5. 数据结构——字符串(未完)
  6. python爬虫系列:12306票务信息爬虫
  7. 源代码主干分支开发四大模式
  8. 3、ShardingSphere 之 Sharding-JDBC 实现水平分库
  9. 4、mybatis主配置文件之typeAliases
  10. shadowplay要下载java_Java并发程序设计(二)Java并行程序基础