type
status
date
slug
summary
tags
category
icon
password

image-20230214144111796
可以看到,此时对象是代理对象,方法是调用对应的run方法,因为没有入参,所以是null

image-20230214144251345
继续step into
可以看到,此时obj对象已经变成真正的car了,方法是run方法,下一步就进真正的方法了

image-20230214144633499

image-20230214144732269
总结
想要在每个方法之前或者之后打印日志,或者在进入方法之前校验权限,那么一种方案是创建一个代理对象,由代理对象在执行方法之前统一打印日志,权限校验。框架里面应用动态代理的也很多,就是因为要把对象交给框架来代理,由框架去做统一的操作。