场景:一个 Spring 管理的普通 Service,里面有 A、B 两个方法,A 方法会调用 B 方法,且 A 方法会被其他 Service 调用。现在有一个统计方法耗时的切面注解,在 A、B 方法上都打了该注解。若其他 Service 调用 A,A 方法里再调用 B,后台会输出几行耗时日志,为什么?B 方法的调用对象是什么?
考察说明
考察 Spring AOP 代理机制与内部方法调用的知识点
回答思路
- 正确指出只会输出 A 方法的耗时日志
- 解释内部调用绕过代理导致注解不生效
- 指出 B 方法是通过 this 调用,调用对象是原始对象而非代理
- 能补充解决方案(如 Spring AOP 自调用解决方式)
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。