Spring-控制反转(IoC)和面向切面编程(AOP)

Spring的核心是控制反转(Inversion of Control,简称IoC)面向切面(Aspect Oriented Programming, 简称AOP),那么什么是IoC和AOP呢?

先谈谈我对什么是IoC的理解以及IoC的存在目的!

控制反转(IoC):IoC就是将控制对象的创建与销毁(生命周期)的控制权力交给IoC容器来管理。举个例子:现在卖二手车的比较多,那么我们会通过怎样的方式去寻找适合的二手车呢?以前的方式是我们可能自己去寻找,打听一些卖车的卖家,查看车的性能配置,往往这个过程是需要自己到处跑,传统的程序开发也是这样,在一个对象中如果要使用另外一个对象(依赖对象),我们必须自己去new一个对象,同时依赖的对象的创建的权力完全是由当前对象所决定的。这样的话就会导致耦合度比较高!IoC就相当于二手车交易平台,在这个平台中登记了所有的卖家的车辆信息,你需要什么样的二手车,只需要在平台上搜索,平台就会给你匹配对应的车,这就好比需要什么样的对象,IoC容器就会为我们创建什么样的对象。

控制反转(IoC)的目的:在做开发的时候需要各板块之间低耦合高内聚,因此控制反转的目的就是为了降低程序间的耦合性!

 

那么什么又是面向切面编程(AOP)?

面向切面编程(AOP)的目的:

  1. 解决代码重复性问题

  2. 关注点分离(分离功能性需求与非功能性需求)

面向切面编程(AOP):面向切面编程是OOP(面向对象编程)的补充而不是替代,使用AOP就是将非功能性需求从功能性需求中分离出来,一方面避免在业务逻辑中混入很多的系统相关的逻辑,另一方面,通过分离出来独立管理,然后通过切面切入系统,可有效地解决代码重复性问题。具体的意图(引用百度百科)为:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。

 

本文仅为个人理解,如有错误还请指出!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值