spring的aop使用方式

2021-10-13 12:36:00 字數 1661 閱讀 4952

1.將業務邏輯元件和切面類加入到容器中,告訴spring那個是切面類@aspect

2.子啊切面類上的每乙個通知方法上標註通知註解,告訴spring何時何地執行(切入點表示式)

3.開啟基於註解的aop模式:@enableaspectjautoproxy

需求:在定義乙個業務邏輯類mathcaculator:在業務邏輯執行的時候進行將日誌進行列印 *,在方法之前,方法之後,方法執行時列印日誌

一、建立乙個計算器類mathcalculator

package com.hjh.aop;

public class mathcalculator

}

二、建立乙個切面類

package com.hjh.aop;

import org.aspectj.lang.joinpoint;

import org.aspectj.lang.annotation.*;

@aspect

public class logaspects

@before("pointcut()")

public void logstart(joinpoint joinpoint) ");

}@after("pointcut()")

//如果是外部類想引用此切面類,可以寫成 許可權類名 @after("com.hjh.aop.logaspects.pointcut()")

public void logend(joinpoint joinpoint)

@afterreturning(value = "pointcut()", returning = "result")

public void logreturn(object result) ");

}@afterthrowing(value = "pointcut()", throwing = "e")

public void logexception(exception e) ");

}}

三、建立乙個配置類,在配置類中開啟自動切面自動**@enableaspectjautoproxy 

/*

* 1.將業務邏輯元件和切面類加入到容器中,告訴spring那個是切面類@aspect

* 2.子啊切面類上的每乙個通知方法上標註通知註解,告訴spring何時何地執行(切入點表示式)

* 3.開啟基於註解的aop模式:@enableaspectjautoproxy

* */

@enableaspectjautoproxy //開啟切面**功能

@configuration

public class mainconfigurationaop

@bean

public logaspects logaspects()

}

四、測試

public class beantest 

}

結果

div除法執行....引數列表:{}

div執行中。。。。

div除法結束.....

除法正常返回....執行結果:

process finished with exit code 0

Spring以註解方式使用aop

7.spring以註解方式使用 xmlversion 1.0 encoding utf 8 beans xmlns xsi xmlns xmlns context xmlns aop xsi schemalocation spring beans 4.2.xsd spring context 4.2...

Spring使用AOP方式管理事務

使用 transactional 註解配置事務,則需要給每個方法都加上註解,勢必太麻煩。則以使用aop面向切面程式設計思想管理事務 標籤的屬性 name 方法名的匹配模式,通知根據該模式尋找匹配的方法。propagation 設定事務定義所用的傳播級別。isolation 設定事務的隔離級別。tim...

使用spring註解方式實現AOP 二

如果需要對業務方法中的引數和返回值做處理的情況下 package com.chris.aop import org.springframework.stereotype.service service testservice public class testservicebean public s...