今天大致復(fù)習(xí)了下AOP,趕緊記下來要點,以后看下自己就記住了。
1.什么是AOP?
概念太生澀難懂,直接畫個圖。
簡單粗暴,就是你的業(yè)務(wù)邏輯正在執(zhí)行,咔嚓,你要給多個業(yè)務(wù)邏輯添加共同的處理邏輯,把這個面橫切出來。
2.應(yīng)用?
權(quán)限檢查,日志記錄,性能分析,審計,事務(wù)管理,凡是可以加入切面的分布在各個方法里面的代碼可以組織到一起的都可以用AOP面向切面編程。
3.怎么實現(xiàn)?
對于實現(xiàn)了接口的,Proxy+invocationHandler實現(xiàn),proxy的newInstance方法可以傳參數(shù),具體實現(xiàn)是通過動態(tài)編譯和反射機制,產(chǎn)生一個實現(xiàn)了對應(yīng)接口的代理Proxy,然后去執(zhí)行。
對于沒有實現(xiàn)接口的,可以使用CGLib和javassist來直接操作二進制碼來實現(xiàn)
4.怎么用?
聲明式事務(wù)管理,分為Annotation和xml兩種方式
嗯大概就是粗略說一下,當(dāng)然細(xì)節(jié)還有很多,在筆記本上,就當(dāng)是一個復(fù)習(xí)思路記錄吧。