1.將業務邏輯元件和切面類加入到容器中,告訴spring那個是切面類@aspect需求:在定義乙個業務邏輯類mathcaculator:在業務邏輯執行的時候進行將日誌進行列印 *,在方法之前,方法之後,方法執行時列印日誌2.子啊切面類上的每乙個通知方法上標註通知註解,告訴spring何時何地執行(切入點表示式)
3.開啟基於註解的aop模式:@enableaspectjautoproxy
一、建立乙個計算器類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...