置頂那個是錯的,invoke()里的proxy就是要被代理的對象,真的代理對象是在Proxy.newProxyInstance()生成的,如果nvoke()里的proxy就是被代理對象,還要后者干嘛??都可以直接用代理對象了
2017-08-08
已采納回答 / YCyoung
代理的代理,就是將用時間增強過的代理再用日志增強,這樣就可以同時輸出時間和日志,應該對car的時間增強代理類增強日志功能??床欢愕腸tp和clp的意義何在,你可能將動態代理和靜態代理混淆了,你這里的代理處理器還是對時間的增強,并沒有對日志增強的代理處理器。(動態代理是依據代理處理器來動態創建代理的。)
2017-07-21
最后那部分load到內存,我自己的理解是裝載類,然后得到這個類的Class然后通過Class獲得構造器的過程。經測試,使用Class.forName()也可以實現相同的效果。(有不對的歡迎指正)
裝載類使用ClassLoader.loadClass(),也可以使用Class.forName(),這兩個都能得到Class對象,區別是前者不會初始化類,即不會加載類的靜態變量和靜態塊,而Class.forName()則會加載類的靜態塊,分配類的靜態變量。JDBC連接的時候使用Class.forName()實際上是加載Driver類的static塊而ClassLoader不會加載。
裝載類使用ClassLoader.loadClass(),也可以使用Class.forName(),這兩個都能得到Class對象,區別是前者不會初始化類,即不會加載類的靜態變量和靜態塊,而Class.forName()則會加載類的靜態塊,分配類的靜態變量。JDBC連接的時候使用Class.forName()實際上是加載Driver類的static塊而ClassLoader不會加載。
2017-07-18