AOP PointCut (XML)

Codren·2021년 6월 22일
0

AOP

목록 보기
3/3

Section 1. PointCut

1. PointCut

Weaving 을 적용시킬 특정 JoinPoint 를 지정하는 것
= 어떤 Core Concern 에 AOP 기술을 적용할 것인지 지정하는 것

  • Weaving - 실제 객체의 메서드를 부가기능으로 wrapping 또는 연결하는 것
  • JointPoint - 위빙되는 실제 객체의 메서드 (Core Concern)




2. PointCut 적용

  • total 메서드에만 BeforeAdvisor 부가기능이 수행되도록 지정
  • Proxy 에 advice 를 등록할 때 PoinCut 객체를 list value 로 지정





3. NameMatchMethodPointcut

  • 실제 객체의 어떤 메서드에 부가기능을 적용시킬지 정보를 제공하는 객체 생성
  • setMappedName 메서드로 메서드명 total 을 지정
<bean id="classicPointCut" class="org.springframework.aop.support.NameMatchMethodPointcut">
      <property name="mappedName" value="total"/>
</bean>





4. DefaultPointcutAdvisor

  • 부가기능 핸들러와 적용될 메서드 정보를 가진 Advisor 객체 생성
  • logBeforeAdvice 객체 지정 (핸들러)
  • classicPointCut 객체 지정 (적용될 메서드)
<bean id="classicBeforeAdvisor" class="org.springframework.aop.support.DefaultPointcutAdvisor">
      <property name="advice" ref="logBeforeAdvice"/>
      <property name="pointcut" ref="classicPointCut"/>
</bean>





5. NameMatchMethodPointcutAdvisor

  • 간소화된 PointCut
  • PointcutAdvisor 안에 NameMatchMethodPointcut 를 구현
// 하나의 메서드만을 지정
<bean id="classicBeforeAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
      <property name="advice" ref="logBeforeAdvice"/>
      <property name="mappedName" value="total"/>
</bean> 

// 여러 메서드 지정
<bean id="classicBeforeAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
      <property name="advice" ref="logBeforeAdvice"/>
      <property name="mappedName">
      		<list>
      			<value>total</value>
      			<value>mean</value>
      		<list>
      </property>
</bean> 

0개의 댓글