多语言展示
当前在线:1623今日阅读:193今日分享:47

如何使用原型链实现面向切面编程

最近小编收到很多问题,其中一个就是下面小编为大家整理一下关于如何使用原型链实现面向切面编程的步骤,希望这些方法能够帮助到大家。
方法/步骤
1

首先,在android studio中直接配置AspectJ,这个配置很重要,如果失败,后面就无法成功,先贴出我的配置,在app的build.gradle中做配置。

2

然后,但是编译时得用Aspect专门的编译器,这里的配置就是使用Aspect的编译器,单独加入aspectj依赖是不行的。到这里准备工作已完成,可以开始看看具体实现了。

3

然后,创建切面AspectJ ,用来处理触发切面的回调,这里要使用Aspect的编译器编译必须给类打上标注,@Aspect。

4

然后,在Pointcut这里,我使用了execution,也就是以方法执行时为切点,触发Aspect类。而execution里面的字符串是触发条件,也是具体的切点。我来解释一下参数的构成。“execution(@com.zx.aopdemo.login.CheckLogin * *(..))”这个条件是所有加了CheckLogin注解的方法或属性都会是切点,范围比较广。

5

然后,再来看看@Around,Around是指JPoint执行前或执行后被触发,除了Around还有其他几种方式。Before前置通知, 在目标执行之前执行通知,After后置通知, 目标执行后执行通知,Around环绕通知, 在目标执行中执行通知, 控制目标执行时机,AfterReturning后置返回通知, 目标返回时执行通知,AfterThrowing异常通知, 目标抛出异常时执行通知,创建完Aspect类之后,还需要一个注解类,它的作用是:哪里需要做切点,那么哪里就用注解标注一下,这样方便快捷。

6

最后,如果使用的是以方法相关为切点,那么使用MethodSignature来接收joinPoint的Signature。如果是属性或其他的,那么可以使用Signature类来接收。之后可以使用Signature来获取注解类。,那么通过jointPoint.getThis()获取使用该注解的的上下文对象。

注意事项

上述方法为小编整理所得,希望能够帮助到大家。

推荐信息