AOP快速入门
一、概念
AOP面向切面編程,是函數式編程的延申,是對OOP的補充;
代理模式:攔截增強作用,增強功能;
1、java繼承,縱向共性抽取,
?
?2、橫向切面AOP織入增強代碼方式
?
?二、原理是通過代理機制,代理模式的意思就是用代理對象增強原來的真實對象的功能,如Filter攔截器;
?
?其中,Proxy是java自帶的一個類;
三、AOP術語
?四、手動實現AOP編程,用JDK的Proxy代理,AOP只是一種思想
代理:必須要有接口存在,因為創建代理對象時參數列表第二個參數就是接口的實現類對象(真實對象),接口是不能創建對象的;
1、靜態工廠類:
?
?其中,先創建了接口的實現類對象,為真實對象,再創建代理對象來攔截和增強真實對象的方法功能;
?
?其中,這邊的創建代理對象的第三個參數列表是一個匿名內部類,匿名內部類訪問外面的靜態方法中的局部變量時,要讓這變量用final修飾;
代碼測試:
?其中,使用靜態工廠創建出代理對象增強真實對象的方法功能;
?
五、使用cglib代理手動實現AOP
1、代碼實現
?
?
?
?
?
?
?
?代碼測試:
?2、細節優化
?
?proxy代理對象是真實對象的子類;
解耦是和外面的studentService對象沒有關系了;
動態代理意思是這個代理對象是程序運行時生成的,代碼里看不到這個類和對象存在;
轉載于:https://www.cnblogs.com/wmqiang/p/11610227.html
總結
- 上一篇: Filter案例之敏感词过滤和代理模式
- 下一篇: AspectJ——AOP框架快速入门