SpringAop兩種配置 註解方式和xml配置

2021-08-20 15:20:29 字數 2718 閱讀 4661

一,什麼是springaop?

所謂的springaop就是面向切面程式設計,就是在你的原有專案功能上,通過aop去新增新的功能,這些功能是建立在原有的功能基礎上的,而且不會修改原來的動能**以及功能邏輯。例如你用銀行卡購物,購物付款,這是乙個功能。付款後,銀行向你的手機傳送一條取錢資訊,這就是新加的功能。也就是實現了增強

二,springaop的實現機制是什麼?

橫向抽取機制,那麼什麼是橫向抽取機制呢?所謂的橫向抽取機制就是使用動態的**的方式(cglib**和jdk**)來實現物件的**,實際上我們操作的是假物件。既然有橫向抽取機制,那麼有沒有縱向**模式呢 ?答案是有的。那麼什麼是縱向抽取呢?縱向抽取就是把公共的方法寫在父類裡,所有的類都繼承父類,這樣就是能呼叫父類的方法。例如,你購物付款是乙個子類的功能,你可能還會取款,這也是乙個功能,而在他們結束之後,銀行都會傳送乙個資訊給你,這又是乙個功能,這個銀行給你傳送資訊是個公共的方法,所以這個發資訊的功能就是屬於父類的。子類繼承父類並呼叫父類的方法就是縱向抽取。

三,springaop的使用場景

一般來說:列印日誌,還有簡訊通知啊,許可權驗證等,都可以使用aop來實現。

四,sringaop的兩種實現方式

(1)xml檔案配置方式

(2)註解的方式實現

那麼,下面我們就這兩個方式以demo的形式講解一下。

方式一:xml方式配置

a:建立被加強類(鏈結點類)

package cn.ytk.dao;

import org.springframework.stereotype.repository;

@repository

public class userdao

}

b:建立增強類

package cn.ytk.strong;

import org.aspectj.lang.proceedingjoinpoint;

public class project

/* * 環繞通知

* */

public void around(proceedingjoinpoint point) throws throwable

public void after1()

}

c:配置切點和切面

d:執行結果

由上面的配置檔案可以看出,配置相當複雜,接下來我們看一下使用spring註解的方式如何使用吧。

方式二:通過springaop註解實現

a:配置spring檔案,開啟aop註解

b:編寫增強類

package cn.ytk.strong;

import org.aspectj.lang.proceedingjoinpoint;

import org.aspectj.lang.annotation.afterreturning;

import org.aspectj.lang.annotation.aspect;

import org.aspectj.lang.annotation.before;

import org.aspectj.lang.annotation.pointcut;

import org.springframework.stereotype.component;

@component

@aspect

public class project2

//方式二:先編寫切點在將切點加到加強上。

@pointcut("execution(* cn.ytk.dao.*.*(..))")

public void after() {}

@afterreturning("after()")

public void after1()

}

我們可以看出上面給出了兩種方式,第一種是註解直接加在增強方法上,第二種是先定義切點,在增強,這兩種方式都可以實現springaop的操作。

五,springaop常用的相關術語

通知、增強處理(advice)

就是在你已經實現的功能上新增其他的功能,例如列印日誌,完成操作時傳送簡訊等。

連線點(joinpoint

)和方法有關的前前後後都是連線點。

切入點(pointcut)

上面說的連線點的基礎上,你想讓增強使用咋什麼方法之上就是切點。

切面(aspect)

切面是通知(增強)和切入點的結合。

spring aop註解與xml配置兩種方式

spring aop切面兩種使用方式 1.使用xml配置檔案的方式,個人感覺 比較清晰,能夠體現出明顯的層次感 以上部分為spring容器建立後管理的bean 以下為開啟aop的相關配置 junit 測試 runwith springjunit4classrunner.class contextco...

學習Spring aop兩種配置方式

aop 面向切面程式設計,它可以解決重複 aop有兩種方式 1 在springmvc servlet.xml中配置aop,應用bean檔案 2 在bean檔案的類上加 component component public class loging public object doaround pro...

Spring AOP的兩種配置方式

before 前置通知,在方法執行之前執行 after 後置通知,在方法執行之後執行 afterrunning 返回通知,在方法返回結果之後執行 afterthrowing 異常通知,在方法丟擲異常之後 around 環繞通知,圍繞著方法執行 aspect component public clas...