2.Spring核心思想

注意:IOC和AOP不是spring提出的,在spring之前就已经存在,更偏向于理论化。

Spring在技术层次对这两个思想做了非常好的实现(Java)

1 IoC

1.1 什么是IoC

IoC Inversion of Control ( 控制反转 / 反转控制 ) ,注意它是⼀个技术思想,不是⼀个技术实现
 
描述的事情: Java 开发领域对象的创建,管理的问题
 
传统开发⽅式:⽐如类 A 依赖于类 B ,往往会在类 A new ⼀个 B 的对象 IoC 思想下开发⽅式:我们不⽤⾃⼰去 new 对象了,⽽是由 IoC 容器( Spring 框架)去帮助我们实例化对 
 
象并且管理它,我们需要使⽤哪个对象,去问 IoC 容器要即可
 
我们丧失了⼀个权利(创建、管理对象的权利) , 得到了⼀个福利(不⽤考虑对象的创建、管理等⼀系列事情)
 
为什么叫做控制反转?
 
控制:指的是对象创建(实例化、管理)的权利
 
反转:控制权交给外部环境了( spring 框架、 IoC 容器)
 

 

1.2 IoC解决了什么问题

IoC 解决对象之间的耦合问题
 

 

1.3 IoCDI的区别

DI Dependancy Injection (依赖注⼊)
怎么理解:
IOC DI 描述的是同⼀件事情,只不过⻆度不⼀样罢了
 

 

2 AOP

2.1 什么是AOP

AOP: Aspect oriented Programming ⾯向切⾯编程 / ⾯向⽅⾯编程
 
AOP OOP 的延续,从 OOP 说起 OOP 三⼤特征:封装、继承和多态
 
oop 是⼀种垂直继承体系
 

OOP 编程思想可以解决⼤多数的代码重复问题,但是有⼀些情况是处理不了的,⽐如下⾯的在顶级⽗类
 
Animal 中的多个⽅法中相同位置出现了重复代码, OOP 就解决不了
 

 

横切逻辑代码
 

 

横切逻辑代码存在什么问题:
 
横切代码重复问题
 
横切逻辑代码和业务代码混杂在⼀起,代码臃肿,维护不⽅便
 
AOP 出场, AOP 独辟蹊径提出横向抽取机制,将横切逻辑代码和业务逻辑代码分析
 

 

代码拆分容易,那么如何在不改变原有业务逻辑的情况下,悄⽆声息的把横切逻辑代码应⽤到原有的业
 
务逻辑中,达到和原来⼀样的效果,这个是⽐较难的
 
 

2.2 AOP在解决什么问题

在不改变原有业务逻辑情况下,增强横切逻辑代码,根本上解耦合,避免横切逻辑代码重复
 

2.3 为什么叫做⾯向切⾯编程

「切」:指的是横切逻辑,原有业务逻辑代码我们不能动,只能操作横切逻辑代码,所以⾯向横切逻辑
 
「⾯」:横切逻辑代码往往要影响的是很多个⽅法,每⼀个⽅法都如同⼀个点,多个点构成⾯,有⼀个
 
⾯的概念在⾥⾯
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值