Spring5参考指南Spring Boot 核心技术程序那些事

Spring5参考指南:SpringAOP简介

2019-10-07  本文已影响0人  flydean程序那些事

写过程序的都知道OOP即面向对象编程。

从最开始的面向过程编程,到后面的面向对象编程,程序的编写方式发生了重大的变化,面向对象编程将业务逻辑封装成一个一个的对象,所有的操作都转换为对对象的操作。

面向对象编程现在使用的非常普遍,一般来说只要是高级语言都支持,但是它也有缺点,比如如果我们想做一些横跨对象的操作(如统计各个对象里面某个方法的执行时间),这时候面向对象可以能力有不逮。我们可能需要在每个对象里面都添加一些统计时间的代码,那么有没有更好的方法来处理这个问题呢?

面向方面编程(AOP)通过提供对程序结构的另一种思考方式来补充面向对象编程(OOP)。OOP中模块化的关键单元是类,而AOP中模块化的单元是方面。方面支持跨多个类型和对象的关注点(如事务管理)的模块化。(在AOP文献中,这种关注通常被称为“横切”关注。)

AOP的概念

AOP的英文全称是Aspect-oriented Programming (AOP) 。面向方面的编程。它有如下几个概念:

Spring AOP简介

Spring AOP是纯Java实现的。不需要特殊的编译过程。

SpringAOP目前只支持方法上面的连接点,并没有实现字段连接。如果要实现这样的功能可以考虑使用AspectJ。

面向方面的集大成者是AspectJ, 它提供了面向方面编程的非常全面的功能,SpringAOP从未试图与AspectJ竞争,以提供全面的AOP解决方案。我们相信,基于代理的框架(如SpringAOP)和全面的框架(如AspectJ)都是有价值的,它们是互补的,而不是竞争中的。Spring无缝地将SpringAOP和IOC与AspectJ集成在一起。

SpringAOP的AOP方法不同于大多数其他AOP框架。目的并不是提供最完整的AOP实现。相反,其目的是在AOP实现和SpringIOC之间提供紧密的集成,以帮助解决企业应用程序中的常见问题。

Spring AOP通知类型

Spring AOP包含以下几种通知类型:

最常使用的是Around advice,他的功能也最强大。他可以实现其他advice的功能,但是我们建议使用功能最小的通知类型,因为这样的模型更加简单,并减少你的编写程序出错几率。

更多教程请参考 flydean的博客

上一篇 下一篇

猜你喜欢

热点阅读