美文网首页
AOP--面向切片编程

AOP--面向切片编程

作者: 2f479b1467f1 | 来源:发表于2017-11-02 15:42 被阅读155次

一.关于定义接口类的问题

1.定义接口类
是为了在其他类中添加注解的时候,伪装成运行了此接口类方法
所以如果想要制定获取一些没有共性的方法或者参数去获取切面,运用此方法。
定义注解类,在方法前添加注解,然后可以在切面处找到切点。

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface CheckLogin {
}
/**
* 找到处理的切点
* * *(..) 可以处理CheckLogin这个类所有的方法
/
@Pointcut("execution(@com.shanlinjinrong.creditmoney_android.CheckLogin * (..))")
public void executionCheckLogin() {
}
2.不定义接口类
仅仅根据aspectJ语法,找到指定包下面的指定类以及指定方法
@Pointcut("execution(
com.androidaop.demo.AopDemoActivity.onCreate(..)) ||"
+"execution(
com.androidaop.demo.AopDemoActivity.onStart(..))")
public void logForActivity(){}; //注意,这个函数必须要有实现,否则Java编译器会报错

在execution方法中,第一个参数是指注解类方法,表示要切点的注解类方法
第二个参数是指添加注解类方法的位置

最终获取的切点是第二个参数中找到的类方法中的,含有第一个参数注解的方法。

注意在一种,切面的第一个参数是@com.shanlinjinrong.creditmoney_android.CheckLogin
这表明需要寻找的注解接口类是CheckLogin ,而第二个参数是* *(..)),说明不在乎哪里定义了注解接口

在第二种中,第一个参数是*,说明不在乎是哪一种注解接口(所以不需要定义注解接口),而第二个参数是com.androidaop.demo.AopDemoActivity.onCreate(..),说明切面是要寻找AopDemoActivity下的oncreate()方法,这样就不用添加注解,依然可以获取到AopDemoActivity的onCreate()方法的切点。

相关文章

  • AOP--面向切片编程

    一.关于定义接口类的问题 1.定义接口类是为了在其他类中添加注解的时候,伪装成运行了此接口类方法所以如果想要制定获...

  • 面向切面编程AOP

    安卓 AOP 实战:面向切片编程 T-MVP

  • AOP Config

    What is AOP? AOP: Aspect-Oriented Programming(面向切片编程).wea...

  • [java]43、Spring-03

    1、AOP 1.1、AOP(Aspect Oriented Programming),面向切片编程 Spring中...

  • AOP(面向切片编程)

    高阶函数 要理解AOP,那么首先要了解高阶函数,成为高阶函数需要两个条件: 函数的参数是函数 (callback回...

  • SpringBoot | Spring AOP学习(一)

    一、为什么要使用 AOP AOP (Aspect-Oriented Programming)面向切片编程 AOP ...

  • iOS:AOP面向切片编程

    AOP简介AOP: Aspect Oriented Programming 面向切面编程。面向切面编程(也叫面向方...

  • Aspects源码详解(一)

    AOP(Aspect Oriented Programming)面向切片编程 AOP主要实现的目的是针对业务处理过...

  • java 和kotlin代理

    简述: Aspect Oriented Programming面向切片编程aop 需求目标: 1.在某个项目中你已...

  • 面向切片编程:钩子方法(hook)

    HOOK方法的使用 导入第三方框架:Aspects performSelector方法: 找出一个函数类没有对外显...

网友评论

      本文标题:AOP--面向切片编程

      本文链接:https://www.haomeiwen.com/subject/idqxhxtx.html