1. 程式人生 > >一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

 

我們已經看了Spring的註解,體驗了一把快速建立物件個屬性注入。一起來學大資料|秒懂Spring註解,艾特一下你就明白,這麼妙?

這篇我們學習的是spring中重要的AOP面向切面的思想。之後,我們便可以在不修改原始碼的前提下實現方法的增強。

AOP技術簡介

舉個簡單的例子,我們這裡有一些功能模組,我們想要在這些功能上新增一個具體的完成時間,那麼我們就要去修改所有功能模組的程式碼,並加入時間,這樣的方式著實讓人煩惱。

一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

 

Spring框架中的AOP面向切面的技術幫助我們解決了這樣的問題,其利用"橫切"技術,能過深入到封裝物件的內部,並且能夠將我們關注的功能程式碼和業務邏輯程式碼分離出來,方便我們的操作。我們對切面進行的操作就是對方法的增強。

面向切面技術的實現,其實就是通過java的動態代理來實現的,我們之前有所已經學習。

一起來學大資料|Java中的動態代理,重中之重的進階基石

AOP重要的操作術語

切入點(Pointcut):我們將類中實際被增強的方法叫做切入點

切面(Aspect):我們把方法的增強拓展應用到具體方法上的這個過程叫做切面

通知/增強(Advice):我們將對方法增強的邏輯,稱為增強或者通知

  • 前置通知:方法執行前執行
  • 後置通知:方法之後後執行
  • 異常通知:方法出現異常後執行
  • 最終通知:不管方法是否能正常執行,都會在最後執行
  • 環繞通知:執行在方法前和方法後

一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

 

Spring的AOP操作

在實際工作中,我們常常使用的註解方式實現aop操作,而很少使用xml配置檔案的方式。接下來,我們就以十分簡單的註解為例來進行說明。

第一步:匯入jar包

同樣的,我們將除了基本jar包以外的與aop相關的jar加入lib中。

一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

 

第二步:創鍵配置檔案

我們首先在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操作

一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

 

最後的效果圖如下:

一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

 

第三步:建立物件

具體的架構是這個樣子的,user是我的普通方法,我們在MyUser中實現我對方法的增強,最後我們在使用TestAop對我們的方法進行測試。

一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

 

User類中的方法如下:

一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

 

我們通過註解名稱來實現對方法的增強,我們再建立一個MyUser類,用來增強user類方法。

1.給User類的show()方法做一個前置增強

一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

 

2.給User類的delete()方法做了一個後置增強

一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

 

3.給User類的add()方法做一個環繞增強

一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

 

4.更新方法的異常通知

一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

 

5.最終增強

一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

 

測試其中一個方法,環繞增強,我們可以發現達到我們的目的。

一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

 


這就是我們今天學習的切面,5個增強方法,我們在新增@註解名稱後可以實現對原有的方法增強,實現功能的拓展。

通過兩天的學習,我們已經知道了spring的AOP操作還有這些:

一起來學大資料|最流行的框架Spring,怎麼可以這麼優秀

一起來學大資料|秒懂Spring註解,艾特一下你就明白,這麼妙?

明天我們學習使用註解的方式連線資料庫以及spring的事務管理,最後的一點小知識。再後,我們開始學習SpringMVC。

個人原創,請多多指教。有幫助到大家的話,關注支援一下喲~

感謝堅持關注的朋友~

一起來學大資料|Spring之AOP操作,巧奪天功的切面技術

 

世界很大,幸好有你~

歡迎在評論區留下你的問題或困惑,我將每天與你分享我的觀點和心得。

聚焦最新科技諮訊,探尋未來智慧領域,我是女陶Mario