开发者社区> 问答> 正文

运行时如何通过父类的某方法拿到调用这个方法的子类?

Spirng @Aspect注解的aop类中 记录操作的日志

//这个方法拦截的是Controller中方法的执行,Controller继承自BaseController调用的也是BaseController中的方   法
@AfterReturning(value = "@annotation(org.springframework.web.bind.annotation.RequestMapping)", argNames = "joinPoint,returnValue", returning = "returnValue")
    public void logging(JoinPoint joinPoint, Object returnValue) {
 
    //我通过 
    Signature signature = joinPoint.getSignature();
    signature.getDeclaringType();//拿到的是BaseController
    MethodSignature methodSignature = (MethodSignature) signature;
    //这里取到的是 拦截的方法  比如 update();
    Method method = methodSignature.getMethod()
    //请问怎么取到触发这个方法的子类?  如下图红线的proxy 对应的AddressController
}

screenshot

展开
收起
a123456678 2016-03-18 14:47:37 2455 0
1 条回答
写回答
取消 提交回答
  • Controller结构是这样的

    public class BaseController<SERVICE extends BaseService,T extends BaseModel> {
        //...
        @RequestMapping("del")
        public void del() {
            //...
        }
    }
    @RequestMapping
    public class AddressController extends BaseController<AddressService, Address>{
    }
    2019-07-17 19:06:43
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
建立联系方法之一 立即下载
继承与功能组合 立即下载
低代码开发师(初级)实战教程 立即下载