栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

对 Spring AOP 的理解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

对 Spring AOP 的理解

AOP(Aspect Oriented Programming)即面向切面编程。使用 AOP 可以很好的将业务代码与其他公共部分分隔出来,可以很好的达到解耦的需要。

切面(aspect):指关注点模块化。事务管理是企业级 Java 应用中有关横切关注点的例子,在 Spring AOP 中,切面可以使用通用类基于模式的方式(schema-based approach)或者在普通类中以 @Aspect 注解来实现。

连接点(Jion Point):在程序执行过程中某个特定的点,例如某个方法调用的时间点或者处理异常的时间点。在 Spring AOP 中,一个连接点总是代表一个方法的执行。

通知(Advice):在切面的某个特定的连接点上执行的动作。通知有多种类型,包括 around、after、before 等。许多 AOP 框架,包括 Spring 在内,都是以拦截器做通知模型的,并维护着一个以连接点为中心的拦截器链。

切点(Pointcut):匹配连接点的断言。通知和切点表达式相关联,并在满足这个切点的连接上运行。切点表达式如何和连接点匹配是 AOP 的核心:Spring 默认使用 AspectJ 切点语义。

引入(Introduction):声明额外的方法或者某个类型的字段。Spring 允许接入新的接口到任何被通知的对象上。

目标对象(Target Object):被一个或者多个切面所通知的对象,也别称作被通知对象。

AOP 代理(AOP Proxy):AOP 框架创建的对象,用来实现切面契约,在 Spring 中,AOP 代理可以是 JDK 动态代理或 从GLIB 代理。

织入(Weaving):把切面连接到其他的应用程序类型或者对象上,并创建一个被通知对象的过程。这个过程可以在编译时、类加载时或运行时完成。Spring 和其他纯 Java AOP 框架一样,是在运行时完成织入的。

任何一个系统都是由不同的组件组成的,每个组件负责一块特定的功能,比如说日志组件、权限组件等与业务无关的组件,这些核心服务组件经常会融入到具体的业务逻辑中,如果我们为每个具体的业务逻辑都添加这样的代码,比如说为每一个接口添加日志来记录接口请求记录,这样的化就会造成大量的代码冗余,因此我们需要将这些公共的代码逻辑抽象出来形成一个切面,然后注入到目标对象,也就是具体业务方法中去。AOP 正是基于这样一个思路实现的,通过动态代理的方式,将需要注入切面的对象进行代理,在进行调用的时候将公共的逻辑直接添加进去,而不需要修改原有业务的逻辑代码块,只需要在原有业务的逻辑基础之上做一些配置或一些增强功能即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1014252.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号