ABOUT ME

안녕하세요! valid_ming 입니다 :D 저의 성장기록을 담고 있습니다.

Today
Yesterday
Total
  • [Spring] Point Cut
    프로그래밍 공부/Spring 2021. 5. 5. 15:59

     

    뉴렉처 강사님의 동영상 강의를 정리한 글입니다.

     

     

    weaving(뜨개질)

    : 부가 로직을 호출하고 부가 로직 실행 중에 주 업무가 실행되는 것을 말함

    weaving

     

     

    JoinPoint

    : 부가 로직이 대상으로 삼는 주 업무 메서드. 부가 로직에서 연결해야 할 포인트 점이 되는 곳

     

     

    Pointcuts

    기본적으로 proxy는 target class의 모든 메서드를 JoinPoint로 생각한다.

    특정 메서드만 weaving 하기 위해서는 별도의 정보가 필요하다. 이것을 point cuts라고 한다.

     

    Advice 별로 pointcut을 사용할 수 있다.

    Advice를 pointcut과 연결해주는 Advisor

     

    <bean id="classicPointCut" class="org.springframework.aop.support.NameMatchMethodPointcut">
    	<property name="mappedName" value="total"/>
    </bean>
    
    <bean id="classicBeforeAdvisor" class="org.springframework.aop.support.DefaultPointcutAdvisor">
        <property name="advice" ref="logBeforeAdvice"/>
        <property name="pointcut" ref="classicPointCut"/>
    </bean>

    - Point cut 생성: mappedName property에 weaving 하고 싶은 method를 넣는다

    - Advisor 생성: advice와 pointcut을 설정해준다. 

    위 코드는 total만 실행하도록 하는 pointcut 정보를 만들고, logBeforeadvice와 classicPointcut을 연결한다.

     

    실행 결과 Before Advice는 total 함수에서만 실행된 것을 확인할 수 있다.

    고전적인 이 방법의 단점은 모든 pointcut에 대해 하나의 advisor을 생성하여 advise와 하나씩 붙여줘야 한다는 점이다.

     

    댓글

Designed by Tistory.