최대 1 분 소요

간소화된 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

카테고리:

업데이트:

댓글남기기