如果被**的類,實現了介面,預設使用 jdk 動態**:
pom.xml 結構參考:
aopadvice **如下:
package proxy;
import org.aspectj.lang.joinpoint;
import org.aspectj.lang.proceedingjoinpoint;
import org.aspectj.lang.annotation.around;
import org.aspectj.lang.annotation.aspect;
import org.aspectj.lang.annotation.pointcut;
@aspect
public class aopadvice
public void beforeadvice(joinpoint point)
public void afteradvice(joinpoint point)
@around("dosomething()")
public void aroundadvice(proceedingjoinpoint proc) catch (throwable e)
afteradvice(proc);}}
realizeclass **如下:
package proxy;
public class realizeclass implements testinte***ce
}inte***ce testinte***ce
testspring **如下:
package proxy;
import org.junit.test;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import org.springframework.context.annotation.enableaspectjautoproxy;
@enableaspectjautoproxy
@configuration
public class testspring
@bean
aopadvice aopadvice()
@test
public void test()
}
執行程式,輸出結果為:
method = print
target = proxy.realizeclass
realizeclass 類的方法中
method = print
target = proxy.realizeclass
此時結果是正確的,但是我們想知道它所使用的是哪一種動態**方式,那麼在 realizeclass.print();(testspring 中第 27 行)這行打斷點,使用debug模式執行,滑鼠放在 realizeclass 上:
如果被**的類,沒有實現介面,預設使用 cglib 動態**:
除去 realizeclass 類的繼承關係,將 realizeclass 類改為:
public class realizeclass
}
修改測試**:
@test
public void test()
輸出結果:
method = print
target = proxy.realizeclass
realizeclass 類的方法中
method = print
target = proxy.realizeclass
此時再打斷點除錯:
改回之前 jdk 動態**的**:
@test
public void test()
realizeclass 的**為:
public class realizeclass implements testinte***ce
}inte***ce testinte***ce
此時在註解上做少許改變:
@enableaspectjautoproxy(proxytargetclass = true)
打斷點除錯:
在 spring2.x 的版本中,可以在 xml 中使用
檢視 enableaspectjautoproxy:
public @inte***ce enableaspectjautoproxy .
*/boolean proxytargetclass() default false;
}
在注釋中有說明,可以選擇是否使用 cglib 動態**,但預設是不使用。 vue的踩坑路
serve pure static assets var staticpath path.posix.join config.dev.assetspublicpath,config.dev.assetssubdirectory 其實只有這一行,特別注意,這個不加拿不到json 拿不到,因為webpa...
移動端的爬坑路
暫時有幾個常見的需要注意一下,防止被坑。1 手機瀏覽器會突然縮小頂部欄或者乾脆消失。這是由於使用了瀏覽器預設滑動事件造成的。所以整體專案要麼都使用滑動事件,要麼就只使用touch滑動事件,比如better scroll。2 ios對h5css position屬性支援是有些問題的,比如fixed與i...
spring配置中的坑
spring中配置坑了好多次,現在記錄一下 佔位通過分析和檢視原始碼發現messagesource並不是在springmvc.xml中注入的bean 經過實驗發現在springmvc.xml中注入messagesource在controller可以注入,springmvc.xml中掃瞄的是contr...