package com.bit.springboard.common;
//import org.aopalliance.intercept.Joinpoint;
import org.aspectj.lang.JoinPoint;
public class Before {
public void beforeLog(JoinPoint jp) {
String methodName = jp.getSignature().getName();
Object[] methodArgs = jp.getArgs();
if(methodArgs.length !=0)
{System.out.println("[사전처리]" + methodName + "()의 매게변수정보 : " + methodArgs[0].toString());
}
else {
System.out.println("[사전처리]" + methodName + "()는 매개변수가 없습니다.");
}
}
}
package com.bit.springboard.common;
import org.aspectj.lang.JoinPoint;
public class AfterThrowing {
public void afterThrowingLog(JoinPoint jp , Exception exception) {
String methodName = jp.getSignature().getName();
System.out.println("[예외처리]" + methodName + "()실행중 발생한 예외 : " + exception.getMessage());
}
}
package com.bit.springboard.common;
import org.aspectj.lang.JoinPoint;
import com.bit.springboard.dto.BoardDTO;
public class AfterReturning {
//returnobj : 포인트컷 메소드가 종료될 때 반환해주는 값
// 두번쨰 매개변수인 OBject를 바인드 변수라고 하고 메소드의 리턴값을 자동으로 매핑.
public void afterReturningLog(JoinPoint jp, Object returnObj) {
String methodName = jp.getSignature().getName();
//뭐를 했길래 returnobj에 boarddto가 들어오는거지?
if (returnObj != null && returnObj instanceof BoardDTO) {
BoardDTO board = (BoardDTO) returnObj;
if (board.getBoardWriter().equals("관리자")) {
System.out.println("관리자가 작성한 글입니다.");
}
}
if (returnObj != null) {
System.out.println("[사후처리]" + methodName + "()의 리턴값 : " + returnObj.toString());
}
else {
System.out.println("[사후처리]" + methodName + "()의 리턴값 은 없습니다. ");
}
}
}
package com.bit.springboard.common;
import org.aspectj.lang.ProceedingJoinPoint;
public class Around {
public Object aroundLog(ProceedingJoinPoint pjp) throws Throwable {
System.out.println("[사전처리] 비즈니스 로직 전 실행");
Object returnObject = pjp.proceed();
System.out.println("[사후처리] 비즈니스 로직 후 실행 ");
return returnObject;
}
}
댓글 영역