专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 一文了解Java aop实现原理

一文了解Java aop实现原理

更新时间:2022-11-21 09:32:08 来源:赢咖4 浏览912次

Java aop实现原理是什么?赢咖4小编来告诉大家。

一文了解Java aop实现原理

首先了解一下 AOP 的主要概念。 建议——从连接点调用的附加逻辑或代码。建议可以在连接点之前、之后或代替连接点执行(下面将详细介绍)。可能的建议类型:

之前——这种类型的建议在目标方法(即连接点)执行之前启动。将方面用作类时,我们使用@Before注释将通知标记为之前出现。将方面用作.aj文件时,这将是before()方法。

After — 在方法(连接点)执行完成后执行的建议,无论是在正常执行还是在抛出异常时。

将方面用作类时,我们可以使用@After注释来指示这是之后的通知。

将方面用作.aj文件时,这是after()方法。

返回后——只有当目标方法正常完成且没有错误时才执行此建议。

当方面表示为类时,我们可以使用@AfterReturning批注将通知标记为在成功完成后执行。

将方面用作.aj文件时,这将是after() 返回 (Object obj)方法。

抛出后——此建议适用于方法(即连接点)抛出异常的情况。我们可以使用此建议来处理某些类型的失败执行(例如,回滚整个事务或具有所需跟踪级别的日志)。

对于类方面,@AfterThrowing注释用于指示在抛出异常后使用此建议。

将方面用作.aj文件时,这将是after() throwing (Exception e)方法。

周围——也许是最重要的建议类型之一。它包含一个方法,即一个连接点,我们可以使用它来选择是否执行给定的连接点方法。

您可以编写在执行连接点方法之前和之后运行的建议代码。

around advice负责调用连接点方法和返回值(如果该方法有返回值)。换句话说,在这个通知中,你可以简单地模拟目标方法的运行而不调用它,并返回你想要的任何结果作为返回结果。

给定方面作为类,我们使用@Around注释来创建包装连接点的建议。当使用.aj文件形式的方面时,此方法将是around()方法。

连接点——运行程序(即方法调用、对象创建、变量访问)中应该应用建议的点。换句话说,这是一种用于查找代码注入位置(应该应用建议的地方)的正则表达式。 切入点——一组连接点。切入点确定给定的建议是否适用于给定的连接点。 方面——实现横切功能的模块或类。切面通过在某些切入点定义的连接点应用建议来更改其余代码的行为。换句话说,它是建议和连接点的组合。 介绍— 更改类的结构和/或更改继承层次结构以将方面的功能添加到外部代码。 目标— 建议将应用到的对象。 编织——将方面链接到其他对象以创建建议代理对象的过程。这可以在编译时、加载时或运行时完成。织法分为三种:

编译时编织——如果你有方面的源代码和使用方面的代码,那么你可以直接使用 AspectJ 编译器编译源代码和方面;

编译后编织(二进制编织) ——如果您不能或不想使用源代码转换将方面编织到代码中,您可以采用先前编译的类或 jar 文件并将方面注入其中;

加载时编织——这只是二进制编织,延迟到类加载器加载类文件并为 JVM 定义类。

需要一个或多个编织类加载器来支持这一点。它们要么由运行时显式提供,要么由“编织代理”激活。

AspectJ — AOP范例的特定实现,它实现了执行横切任务的能力。文档可以在这里找到。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>