🍃 Spring

애스팩트 설정 : after / returning

보배 진 2026. 1. 24. 11:25

AfterAdvice.java 파일 생성

package com.example.biz.common;

public class AfterAdvice {
	public void printLog() {
		System.out.println("[로그] 핵심 관심사 후 로그");
	}
}

After Advice

핵심 비즈니스 메서드가 실행된 "후"에 무조건 실행된

(정상 종료든, 예외든 상관없이)

 

 

applicationContext.xml

<bean class="com.example.biz.common.AfterAdvice" id="afa" />

<aop:aspect ref="afa">
	<aop:after method="printLog" pointcut-ref="bPointcut"/>
</aop:aspect>

bPointcut에 걸린 비즈니스 메서드 실행 후

printLog( ) 실행

 

 

 

실행 결과

① BeforeAdvice
② AroundAdvice (전)
③ 비즈니스 메서드 실행
④ AfterAdvice
⑤ AroundAdvice (후)
⑥ 결과 출력

 

 


 

after-returning

비즈니스 메서드가 정상적으로 종료됐을 때만 실행되는 Advice

예외 발생 ▶ 실행 안 됨

return 정상 종료 ▶ 실행 됨

 

AfterReturningAdvice.java 파일 생성

package com.example.biz.common;

public class AfterReturningAdvice {
	public void printLog() {
		System.out.println("[로그] 정상적으로 메서드가 종료됨");
	}
}

 

 

 

applicationContext.xml 설정

<bean class="com.example.biz.common.AfterReturningAdvice" id="ara" />

<aop:aspect ref="ara">
	<aop:after-returning method="printLog" pointcut-ref="aPointcut"/>
</aop:aspect>

이 상태면 aPointcut에 걸린 메서드가 에러 없이 끝났을 때만 로그 출력

 

 

이렇게 로그 출력이 잘 됐다