將applicationContext.xml中的內(nèi)容取掉,改為類中添加注解:
package com.lagou.edu.utils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;
/**
* @author 應(yīng)癲
*/
@Component
@Aspect
public class LogUtils {
@Pointcut("execution(* com.lagou.edu.service.impl.TransferServiceImpl.*(..))")
public void pt1(){
}
/**
* 業(yè)務(wù)邏輯開始之前執(zhí)行
*/
@Before("pt1()")
public void beforeMethod(JoinPoint joinPoint) {
Object[] args = joinPoint.getArgs();
for (int i = 0; i < args.length; i ) {
Object arg = args[i];
System.out.println(arg);
}
System.out.println("業(yè)務(wù)邏輯開始執(zhí)行之前執(zhí)行.......");
}
/**
* 業(yè)務(wù)邏輯結(jié)束時(shí)執(zhí)行(無論異常與否)
*/
@After("pt1()")
public void afterMethod() {
System.out.println("業(yè)務(wù)邏輯結(jié)束時(shí)執(zhí)行,無論異常與否都執(zhí)行.......");
}
/**
* 異常時(shí)時(shí)執(zhí)行
*/
@AfterThrowing("pt1()")
public void exceptionMethod() {
System.out.println("異常時(shí)執(zhí)行.......");
}
/**
* 業(yè)務(wù)邏輯正常時(shí)執(zhí)行
*/
@AfterReturning(value = "pt1()",returning = "retVal")
public void successMethod(Object retVal) {
System.out.println("業(yè)務(wù)邏輯正常時(shí)執(zhí)行.......");
}
/**
* 環(huán)繞通知
*
*/
/*@Around("pt1()")*/
public Object arroundMethod(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
System.out.println("環(huán)繞通知中的beforemethod....");
Object result = null;
try{
// 控制原有業(yè)務(wù)邏輯是否執(zhí)行
// result = proceedingJoinPoint.proceed(proceedingJoinPoint.getArgs());
}catch(Exception e) {
System.out.println("環(huán)繞通知中的exceptionmethod....");
}finally {
System.out.println("環(huán)繞通知中的after method....");
}
return result;
}
}
在application.xml中配置注解驅(qū)動(dòng):
<!--開啟aop注解驅(qū)動(dòng)
proxy-target-class:true強(qiáng)制使用cglib
-->
<aop:aspectj-autoproxy/>
純注解模式
我們只需要替換掉xml 注解模式中的注解驅(qū)動(dòng)的部分即可,
將
<!--開啟aop注解驅(qū)動(dòng)
proxy-target-class:true強(qiáng)制使用cglib
-->
<aop:aspectj-autoproxy/>
改為 @EnableAspectJAutoProxy //開啟spring對(duì)注解AOP的?持,在項(xiàng)目中添加到任意個(gè)配置類上即可。
推薦教程:《Java教程》
更多關(guān)于云服務(wù)器,域名注冊(cè),虛擬主機(jī)的問題,請(qǐng)?jiān)L問西部數(shù)碼官網(wǎng):m.ps-sw.cn