Spring基礎 Spring中的AOP框架

2021-10-25 03:54:40 字數 1524 閱讀 1512

oop(物件導向程式設計)提供「從上到下」的關係,而aop(面向方面程式設計)提供一種「橫切」的方式,也可以說是「從左到右」。

簡單來說就是將那些與業務無關,卻為業務模組所共同呼叫的邏輯或責任封裝起來,便於減少系統的重複**,降低模組間的耦合度,並有利於未來的可操作性和可維護性。

可能光是說aop的定義,大家都不太能理解。

舉個例子,比如日誌功能,實現這個功能的**可能是很多類所需要的功能之一,但是如果我們在每乙個類裡都重複新增實現日誌功能的**,將會有很多重複**。

上**(**參考

/**

* @description: 業務類

*/public class calculator

public int sub(int i, int j)

public int mul(int i, int j)

public int div(int i, int j)

}

通過切入點,把業務類calculator「橫向」切開,這樣很好的把業務類和日誌類解耦。

/**

* @description: 日誌切面類,

*/@aspect

public class logaspects ;

//代表在目標方法執行前切入, 並指定在哪個方法前切入

@before("pointcut()")

public void logstart()

//代表在目標方法執行結束之後 ,不管有沒有異常

@after("pointcut()")

public void logend()

//代表在目標方法正常返回值後執行

@afterreturning("pointcut()")

public void logreturn()

//代表在目標方法出現異常後執行

@afterthrowing("pointcut()")

public void logexception()

//動態**,手動執行joinpoint.procced方法(程式執行過程中明確的點,一般指方法的呼叫)

//簡單的來說就是,在目標方法執行之前是前置通知,在目標方法執行之後是後置通知

@around("pointcut()")

public object around(proceedingjoinpoint proceedingjoinpoint) throws throwable

}

/**

* @description: 配置類

*/@configuration

@enableaspectjautoproxy

public class config

@bean

public logaspects logaspects()

}

測試一下

public class test 

}

Spring中 事務基礎

事務 事務是什麼?同生共死 事務解決什麼問題?簡單的提乙個小例子,就轉賬,先把你錢扣掉了,但中途發生點不可抗拒的因素,結果沒轉過去,那麼如果沒有回滾,那麼你就白白損失這錢,如果銀行先給那個人轉達了,但中途發生點問題,你的錢沒扣,那銀行損失慘重,所以這就需要事務,要麼都執行,要麼都不執行 事務的四個特...

spring基礎(五) spring事物

一 事務的概念 事物 是使用者定義的一系列操作序列,這些動作要麼都做,要麼都不做,是乙個不可分割的工作單位 事物提交 資料庫向使用者提供儲存當前程式狀態的方法 事物回滾 資料庫忽略當前的狀態並回到前面儲存的狀態的方法 二 事務特性 原子性 一致性 隔離性 永續性 三 spring事務 enablet...

spring中基礎核心介面

spring中基礎核心介面介紹 spring中基礎核心介面總結 理解這幾個介面,及其實現類就可以快速了解spring,具體的用法參考其他spring資料 3.factorybean工廠bean 它本身在bean factory中定義,同時又是用於建立目標bean的工廠 spring有以下實現 1 j...