切入点分为静态切入点、动态切入点和自定义切入点
在spring中,使用切入点通知器将切入点与通知结合成为一个对象(这句话就不是很理解)
切入点通知器分类:
nNameMatchMethodPointcutAdvisor 静态切入点实例nRegexpMethodPointcutAdvisor 那么这个属于哪个类型呢???
nControlFlowPointcut 动态切入点——它的作用是判断在某个指定类的某个方法的执行堆栈中,该方法是否曾经要求目标对象执行某个动作
以下是controlFlowPointcut的例子 xml文件是这样写的,但是我不是很明白怎么样实现它的功能的,里面的每个元素个代表什么意思嗯??有什么样子的规律?????
<beans>
<bean id="cfBean" class="cn.myaop.ControlFlowBean"/><!-- ?? -->
<bean id="logBeforeAdvice" class="cn.myaop.LogBeforeAdvice"/> <!-- 通知 -->
<bean id="helloCFAdvisor" class="org.springframework.aop.support.ControlFlowPointcut">
<constructor-arg>
<value>cn.myaop.ControlFlowBean</value>
</constructor-arg>
</bean>
<bean id="helloAdvisor" class="org.springframework.aop.support.DefaultPointcutAdvisor">
<property name="pointcut">
<ref bean="helloCFAdvisor"/>
</property>
<property name="advice">
<ref bean="logBeforeAdvice"/>
</property>
</bean>
<bean id="helloImpl" class="cn.myaop.HelloImpl"/>
<bean id="helloProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target">
<ref bean="helloImpl"/>
</property>
<property name="interceptorNames">
<list>
<value>helloAdvisor</value>
</list>
</property>
<property name="proxyInterfaces">
<value>cn.myaop.IHello</value>
</property>
</bean>
</beans>
|