cglib動(dòng)態(tài)代理,為什么a()調(diào)用當(dāng)前類(lèi)的b(),這個(gè)b()是父類(lèi)的b(),而不是cglib生成的子類(lèi)的b()呢?@ComponentpublicclassMyTest{publicvoida(){System.out.println("it'sa");b();}publicvoidb(){System.out.println("it'sb");}}@Aspect@Component@Slf4j@GetterpublicclassAspectLog{@Pointcut("execution(public*com.vae1970.demo.aspect.MyTest.*(..))")publicvoidpointcut(){}@Before("pointcut()")publicvoidbefore(JoinPointjp){Methodmethod=(MethodSignature)jp.getSignature().getMethod();System.out.println("log:function"+method.getName());}}@RestControllerpublicclassTestController{@AutowiredprivateMyTestmyTest;@GetMapping("/aspect")publicStringaspect(){myTest.a();return"ok";}}期望輸出log:functionait'salog:functionbit'sb實(shí)際輸出log:functionait'sait'sb我查看了cglib生成的MyTest類(lèi),a()和b()都做了代理,那為什么實(shí)際執(zhí)行的時(shí)候,沒(méi)有執(zhí)行代理類(lèi)的b()呢?
java cglib動(dòng)態(tài)代理
一只萌萌小番薯
2019-05-11 17:35:15