java学习笔记之: spring-aop

一.名称解释

a.AOP:面向切面编程
b.切入点ponitcut:何地,面向切面中的切面,定义切哪些注解/方法
c.通知advice:何时/干点什么,是在被切的那个方法执行前还是返回结果后之类的分为前置/后置/环绕通知
d.连接点joinpoint:切面上的某一点,即正在被切的那个具体的方法
 // 切入点 这个注解
    @Pointcut("@annotation(com.pafa.testDemo.from.FormRepeat)")
    public void token() {

    }

   // 环绕通知 对应切入点是token
    @Around("token()")
    public Object aroundToken(ProceedingJoinPoint joinpoint) {
        //执行被切的具体方法
        Object  object = joinpoint.proceed();
        return object ;
    }

二.原理

Method.invoke

            @Override
            public String getName(int id) {
                System.out.println("getname");
                //对于内部调用的方法 统一调用原有字节码的信息 而不是代理生成的字节码的 比如private方法
                //method对象中拥有的是不是代理字节码信息
                add();//这个方法在这里调用就不会走代理 
                return "帝释天";
            }

            @Override
            public void add() {
                System.out.println("Add");
            }

三.应用

你可能感兴趣的:(java学习笔记,java)