BeforeAdvice 구현하기

    logBeforeAdvice 설정 추가

    setting.xml

     

    logBeforeAdvice.java

    package spring.aop.advice;
    
    import java.lang.reflect.Method;
    
    import org.springframework.aop.MethodBeforeAdvice;
    
    public class logBeforeAdvice implements MethodBeforeAdvice {
    
    	@Override
    	public void before(Method arg0, Object[] arg1, Object arg2) throws Throwable {
    		// TODO Auto-generated method stub
    		System.out.println("앞에서 실행될 로직");
    	}
    	
    }


    After Returning / Throwing Advice  구현하기

    LogAfterReturningAdvice 설정 추가

    setting.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:p="http://www.springframework.org/schema/p"
    	xmlns:util="http://www.springframework.org/schema/util"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
    		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd">
    	
    	
    	<bean id="target" class="spring.aop.entity.NewlecExam" p:kor="1"  p:eng="1"  p:math="1"  p:com="1"/>
    	<bean id="logAroundAdvice" class="spring.aop.advice.LogAroundAdvice" />
    	<bean id="logBeforeAdvice" class="spring.aop.advice.LogBeforeAdvice" />
    	<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>logAroundAdvice</value>
    				<value>logBeforeAdvice</value>
    				<value>logAfterReturningAdvice</value>
    			</list>
    		</property>
    	</bean>
    	
    </beans>

    LogAfterReturningAdvice.java

    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 {
    		// TODO Auto-generated method stub
    		System.out.println("returnValue : " + returnValue + ", method : " + method.getName());
    	} 
    	
    }


    LogAfterThrowingAdvice 구현하기

    Before나 After 예외가 발생했을 경우 실행됨

     

    예외상황을 만들어 주는 코드 작성

    100 이상의 점수를 입력할 경우 예외처리 

    NewlecExam.java

    국어성적 101점을 주었다.

    setting.xml

     

    LogAfterThrowingAdvice.java

    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());
    	}
    }

    필요한 Exeption을 변경해서 사용할 수 있다.

     

     

     

    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기
    loading