名词解说:IOC和DI,AOP
2018-02-27 23:30
211 查看
一、定义
IOC:反转资源获取的方向。(传统的资源查找方式要求组件向容器发起请求查找资源作为回应,容器适时的返回资源,应用了IOC后则是,容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。“查找的被动形式”)
DI:IOC的另一种表述方式。组件以一些预先定义好的方式接受来自如容器的资源注入。
二、例子
举个简单的例子:
有两个类:
class A{}
class B{
private A a;
public void setA(A a){
this.a = a;
}
}
对于普通容器:
A a = getA();
B b = getB();
b.setA(a);
对于IOC容器:
B b = getB();
三、IOC的前生今世
(1)分离接口与实现
这样的话Service层就要知道前面三个类,耦合度是很高的。
【相当于原始社会我们需要打把锤子的时候,要知道知道做锤头跟锤把的步骤,才能做出一把锤头】
(2)采用工厂设计模式:
耦合度降低了,知道了工厂跟接口就好了,但是代码就跟复杂了。有利于代码的扩展,分工明确了。
【相当于手工时代,知道接口跟工厂找工厂帮忙打一把就好,至于做法的步骤就交给工厂好了】
(3)采用反转控制
【高级社会,只要在门口放一个小框就自动给你一个锤头】
因此要颠覆以前的new啊什么的,而是改成依赖注入!!!
依赖注入的方式:
1、构造器注入
2、属性注入set注入
3、注解注入
4、接口注入
-------------
DI能够让相互协作的软件组件保持松散耦合,而面向切面编程(AOP)允许你把遍布应用各处的功能分离出来形成可重用的组件。
IOC:反转资源获取的方向。(传统的资源查找方式要求组件向容器发起请求查找资源作为回应,容器适时的返回资源,应用了IOC后则是,容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。“查找的被动形式”)
DI:IOC的另一种表述方式。组件以一些预先定义好的方式接受来自如容器的资源注入。
二、例子
举个简单的例子:
有两个类:
class A{}
class B{
private A a;
public void setA(A a){
this.a = a;
}
}
对于普通容器:
A a = getA();
B b = getB();
b.setA(a);
对于IOC容器:
B b = getB();
三、IOC的前生今世
(1)分离接口与实现
这样的话Service层就要知道前面三个类,耦合度是很高的。
【相当于原始社会我们需要打把锤子的时候,要知道知道做锤头跟锤把的步骤,才能做出一把锤头】
(2)采用工厂设计模式:
耦合度降低了,知道了工厂跟接口就好了,但是代码就跟复杂了。有利于代码的扩展,分工明确了。
【相当于手工时代,知道接口跟工厂找工厂帮忙打一把就好,至于做法的步骤就交给工厂好了】
(3)采用反转控制
【高级社会,只要在门口放一个小框就自动给你一个锤头】
因此要颠覆以前的new啊什么的,而是改成依赖注入!!!
依赖注入的方式:
1、构造器注入
2、属性注入set注入
3、注解注入
4、接口注入
-------------
DI能够让相互协作的软件组件保持松散耦合,而面向切面编程(AOP)允许你把遍布应用各处的功能分离出来形成可重用的组件。
相关文章推荐
- spring+IOC+DI+AOP优点分析(一)
- IOC DI AOP Interception
- Spring特点中关于DI,IOC及AOP的个人理解
- Spring IOC/DI和AOP原理
- spring的IOC 、DI、AOP
- 初识IoC、DI、AOP
- Spring+IOC(DI)+AOP概念及优缺点
- Spring AOP/DI/IOC 简述及使用
- Java的几个概念AOP、IOC、DI、DIP、工厂模式、IOC容器
- Spring基础篇——DI/IOC和AOP原理初识
- Spring IoC,DI,AOP的一点理解
- 设计模式--IOC(DI)与AOP思想涉及的模式
- Spring框架,个人笔记--IOC,DI,AOP
- spring的依赖注入(DI)、控制反转(IOC)和面向切面(AOP)
- Spring核心概念理解-IoC容器、DI、AOP
- spring中的AOP、IOC和DI
- 用通俗的语言解释 Spring 中的 DI 、IOC 和AOP概念
- Spring特点中关于DI,IOC及AOP的个人理解
- SSH中各个框架的作用以及Spring AOP,IOC,DI详解
- spring的IOC,DI依赖注入和AOP