走同样的路,发现不同的人生
使用auto proxy的aop(spring預設)解決不了類別內部呼叫的問題。如果要解決這個問題得上aspectj(spring可以和aspectj的整合),aspectj採用執行時間weaving 或 編譯時 weaving,會修改字節碼,可以解決這個問題。
確實不可以 這是spring aop的原理所導致的
Spring类内部调用this取得的是目標物件,不是代理物件
Spring
this
透過BeanPostProcessor,在類正常初始化完畢以後,把自己注入bean中
BeanPostProcessor
透過AopContext.currentProxy取得目前代理物件
AopContext.currentProxy
使用auto proxy的aop(spring預設)解決不了類別內部呼叫的問題。如果要解決這個問題得上aspectj(spring可以和aspectj的整合),aspectj採用執行時間weaving 或 編譯時 weaving,會修改字節碼,可以解決這個問題。
確實不可以 這是spring aop的原理所導致的
Spring
类内部调用this
取得的是目標物件,不是代理物件透過
BeanPostProcessor
,在類正常初始化完畢以後,把自己注入bean中透過
AopContext.currentProxy
取得目前代理物件