一起來學大資料|Spring之AOP操作,巧奪天功的切面技術
我們已經看了Spring的註解,體驗了一把快速建立物件個屬性注入。一起來學大資料|秒懂Spring註解,艾特一下你就明白,這麼妙?
這篇我們學習的是spring中重要的AOP面向切面的思想。之後,我們便可以在不修改原始碼的前提下實現方法的增強。
AOP技術簡介
舉個簡單的例子,我們這裡有一些功能模組,我們想要在這些功能上新增一個具體的完成時間,那麼我們就要去修改所有功能模組的程式碼,並加入時間,這樣的方式著實讓人煩惱。
Spring框架中的AOP面向切面的技術幫助我們解決了這樣的問題,其利用"橫切"技術,能過深入到封裝物件的內部,並且能夠將我們關注的功能程式碼和業務邏輯程式碼分離出來,方便我們的操作。我們對切面進行的操作就是對方法的增強。
面向切面技術的實現,其實就是通過java的動態代理來實現的,我們之前有所已經學習。
AOP重要的操作術語
切入點(Pointcut):我們將類中實際被增強的方法叫做切入點
切面(Aspect):我們把方法的增強拓展應用到具體方法上的這個過程叫做切面
通知/增強(Advice):我們將對方法增強的邏輯,稱為增強或者通知
- 前置通知:方法執行前執行
- 後置通知:方法之後後執行
- 異常通知:方法出現異常後執行
- 最終通知:不管方法是否能正常執行,都會在最後執行
- 環繞通知:執行在方法前和方法後
Spring的AOP操作
在實際工作中,我們常常使用的註解方式實現aop操作,而很少使用xml配置檔案的方式。接下來,我們就以十分簡單的註解為例來進行說明。
第一步:匯入jar包
同樣的,我們將除了基本jar包以外的與aop相關的jar加入lib中。
第二步:創鍵配置檔案
我們首先在src下面建立一個applicationContext.xml的配置檔案。
1.加入約束
每個模組有每個模組的約束,等我們將講完這些,後面我們學習綜合案例的時候,就會將所有的約束都加在一起。
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
這些都是固定格式,沒必要去記。
2.開啟aop操作
最後的效果圖如下:
第三步:建立物件
具體的架構是這個樣子的,user是我的普通方法,我們在MyUser中實現我對方法的增強,最後我們在使用TestAop對我們的方法進行測試。
User類中的方法如下:
我們通過註解名稱來實現對方法的增強,我們再建立一個MyUser類,用來增強user類方法。
1.給User類的show()方法做一個前置增強
2.給User類的delete()方法做了一個後置增強
3.給User類的add()方法做一個環繞增強
4.更新方法的異常通知
5.最終增強
測試其中一個方法,環繞增強,我們可以發現達到我們的目的。
這就是我們今天學習的切面,5個增強方法,我們在新增@註解名稱後可以實現對原有的方法增強,實現功能的拓展。
通過兩天的學習,我們已經知道了spring的AOP操作還有這些:
一起來學大資料|秒懂Spring註解,艾特一下你就明白,這麼妙?
明天我們學習使用註解的方式連線資料庫以及spring的事務管理,最後的一點小知識。再後,我們開始學習SpringMVC。
個人原創,請多多指教。有幫助到大家的話,關注支援一下喲~
感謝堅持關注的朋友~
世界很大,幸好有你~
歡迎在評論區留下你的問題或困惑,我將每天與你分享我的觀點和心得。
聚焦最新科技諮訊,探尋未來智慧領域,我是女陶Mario