温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Spring基本介绍,控制反转IOC与面向切面编程AOP

发布时间:2020-08-06 00:51:59 来源:网络 阅读:663 作者:浅嫣 栏目:开发技术

Spring是一个轻量级控制反转IoC和面向切面AOP的容器框架,它主要是为了解决企业应用开发的复杂性而诞生的。

Spring框架的主要优势之一,是其分层结构,分层结构允许使用者选择使用组件,同时为J2EE应用开发提供基本的框架。基本思想是使用基本的JavaBean代替EJB,可以用在任何Java应用中。

Spring优势:

1.低侵入式设计,代码污染极低

2.一次编写,处处运行

3.DI有效降低了耦合度

4.AOP提供了通用任务的集中管理

5.ORM和DAO简化了对数据库的访问

6.高度开放性,并不强制

Spring的特点:

方便解耦,简化开发

AOP编程的支持

声明式事务的支持

方便程序的测试

方便集成各种优秀框架

降低了JavaEE API的使用难度

Spring IOC(Inversion of Control,控制反转):

是Spring的核心,贯穿始终,所谓IOC对于Spring框架来说,就是由Spring来负责控制对象的生命周期和对象间的关系:

传统的开发模式:对象之间互相依赖

IOC:IOC容器安排对象之间的依赖,Spring会登记所有的类及其特性,等到恰当的时候,会向一个类提供所需要的类,所有的类创建,生存,销毁,都由Spring控制。

Spring基本介绍,控制反转IOC与面向切面编程AOP

(齿轮中的耦合关系类似于软件系统中的耦合关系,耦合度过高会导致牵一发而动全身,降低耦合度是软件工程的追求之一)

图一:面向对象程序设计

图二:IOC解耦原理,把复杂系统分解为相互封装的对象,借助于第三方IOC容器,来对依赖关系的对象来进行解耦

图三:理想的软件系统,ABCD之间没有耦合关系

注意起名为控制反转的原因:在图一中,如果对象A需要使用对象B,回去生成或者引用一个对象B,无论怎样获得对象B,控制权最终都由自己主动掌握,但是在图二中,如果对象A运行到需要对象B,则有IOC容器会主动创建对象B,注入到对象A需要的地方,对象A获得对象B的过程,由主动行为变为被动行为。

我们可以将A看成是主机,B看成是USB接口外接设备,无论外接设备是什么,A都会从USB接口被动地读取数据,设备B究竟是什么取决于人,这就是一个控制反转(依赖注入)的例子。

IOC的另外的名字叫做依赖注入(Dependency Injection),所谓的依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象中。所以,依赖注入和控制反转是从不同的角度描述同一件事情,就是指通过引入IOC容器,利用依赖关系注入的方式,实现容器之间的解耦。IOC容器就是一个对象制造工厂。

IOC通俗理解:

IOC控制反转:创建对象实例的控制权从代码控制剥离到IOC容器控制,实际就是你在XML文件控制,侧重于原理。

DI依赖注入:说的是创建对象实例时,为这个对象注入属性值或其它对象实例,侧重于实现。

AOP专门用于处理系统中分布于各个模块中的交叉关注点的问题,在JavaEE应用中,常常通过AOP来处理一些具有横切性质的系统及服务,如事务管理,安全检查,缓存,对象池管理等,AOP已经成为一种常用解决方案。

Spring基本介绍,控制反转IOC与面向切面编程AOP


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI