Spring - AOP After (Returning/ Throwing) Advice 구현

jodbsgh·2022년 4월 29일
0

🍕"Spring"

목록 보기
18/19

After Returning Advice

본 코드가 실행후 실행되는 AOP

<!--setting.xml side -->
<beans>
	<bean id="target" class="spring.aop.entity.NewlecExam"
    		p:kor="1" p:eng="1" p:math="1" p:com="1" />
    <bean id="LogAfterReturningAdvice" 
    				class="spring.aop.advice.LogAfterReturningAdvice" />
    <bean id="proxy" 
    				class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="target" ref="target" />
    	<property name="interceptorNames">
        	<list>
            	<value>logAfterReturningAdvice</value>
            </list>
        </property>
    </bean>
</beans>
//LogAfterReturningAdvice.class side

package spring.aop.advice;

import java.lang.reflect.Method;
import org.springframework.aop.AfterReturningAdvice;

public class LogAfterReturningAdvice implements AfterReturningAdvice{
	@Override
    public void afterReturning(Object returnValue, Method method, 
    						Object[] args, Object target) throws Throwable{
    	
        System.out.println("returnValue:"+returnValue 
        							+", method:" +method.getName());
		/*
        returnValue 는 메서드의 반환값을 호출하고
		method.getName은 실행된 메서드명을 호출한다.
        */
    }
}

After Throwing Advice

예외 발생시 실행되도록 하는 AOP

<!--setting.xml side -->
<beans>
	<bean id="target" class="spring.aop.entity.NewlecExam"
    		p:kor="1" p:eng="1" p:math="1" p:com="1" />
    <bean id="LogAfterThrowingAdvice" 
    				class="spring.aop.advice.LogAfterThrowingAdvice" />
    <bean id="proxy" 
    				class="org.springframework.aop.framework.ProxyFactoryBean">
    	<property name="target" ref="target" />
    	<property name="interceptorNames">
        	<list>
            	<value>logAfterThrowingAdvice</value>
            </list>
        </property>
    </bean>
</beans>
//LogAfterThrowingAdvice.class side

package spring.aop.advice;

import org.springframework.aop.ThrowsAdvice;

public class LogAfterThrowingAdvice implements ThrowsAdvice
{
	public void afterThrowing(IllegalArgumentException e) throws Throwable{
    	
        System.out.println("예외가 발생하였습니다."+ e.getMessage())
    }
}
profile
어제 보다는 내일을, 내일 보다는 오늘을 🚀

0개의 댓글