23.간소화된 advisor
간소화된 Advisor
- PointCut을 품은 Advisor
<bean id="classBeforeAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
<property name="advice" ref="logBeforeAdvice" />
<property name="mappedName" value= "total" />
</bean>
<bean id="classAroundAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
<property name="advice" ref="logAroundAdvice" />
<property name="mappedName" value= "total" />
</bean>
<bean id ="exam" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target" ref="target" />
<property name="interceptorNames">
<list>
<value>classAroundAdvisor</value>
<value>classBeforeAdvisor</value>
<value>logAfterAdvice</value>
<value>logAfterTrowingAdvice</value>
</list>
</property>
</bean>
</beans>
앞에 실행될 로직
return:4, method:total
202ms 시간 걸렸습니다
total is 4
return:1.0, method:avg
avg is 1.000000
- pointcut 여러개 설정 하기
<bean id="classBeforeAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
<property name="advice" ref="logBeforeAdvice" />
<property name="mappedNames">
<list>
<value>total</value>
<value>avg</value>
</list>
</property>
</bean>
<bean id="classAroundAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
<property name="advice" ref="logAroundAdvice" />
<property name="mappedName" value= "total" />
</bean>
<bean id ="exam" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target" ref="target" />
<!-- 핸들러 넣어준다 -->
<property name="interceptorNames">
<list>
<value>classAroundAdvisor</value>
<value>classBeforeAdvisor</value>
<value>logAfterAdvice</value>
<value>logAfterTrowingAdvice</value>
</list>
</property>
</bean>
</beans>
앞에 실행될 로직
return:4, method:total
202ms 시간 걸렸습니다
total is 4
앞에 실행될 로직
return:1.0, method:avg
avg is 1.000000
댓글남기기