篇三:SpringMVC AOP JoinPoint

一、概览

  AOP切面中连接点JoinPOint,会包含连接点的基本消息,通知所在的类、通知的方法名、通知方法的入参集合。

 

二、JoinPoint  API

//获取连接点方法运行时的入参列表
java.lang.Onject[] getArgs()

//获取连接点的方法签名对象
Signnature getSignnature()

//获取连接点所在的目标对象(通知方法所在的类)
java.lang.Object getTarget()

//获取代理本身
java.lang.Object getThis()

 

三、具体应用

  1、获取入参列表

public void intercept(JoinPoint point) throws Exception{
       //获取入参列表  
       Object args = point.getArgs();   
       for(Object arg:args){
            //获取的是入参的值,不是参数Key名
            System.out.println(arg.toString());     
       }        
}

  2、获取方法

public void intercept(JoinPoint point) throws Exception{
      //获取Signnature
      MethodSignature signnature = (MethodSignature)point.getSignature();
      //获取方法对象
      Method method = signnature.getMethod();
      //打印方法名       
    System.out.println("method:"+signnature.getMethod().getName());
}

  3、获取类

public void intercept(JoinPoint point) throws Exception{
    //获取类的Class对象           
    Class<?> target = point.getTarget().getClass();
    //打印类名
    System.out.println(target.getName());
    //获取类的接口实现集合
    for(Class<?> clazz : target.getInterfaces()){
        resolveDataSource(clazz, signnature.getMethod());
    }
    resolveDataSource(target, signnature.getMethod());
}

 

posted @ 2017-01-10 09:08  刘广平  阅读(423)  评论(0)    收藏  举报