DefaultAdvisorAutoProxyCreator这个类功能更为强大,这个类的奇妙之处是他实现了BeanProcessor接口,当ApplicationContext读如所有的Bean配置信息后,这个类将扫描上下文,寻找所有的Advistor(一个Advisor是一个切入点和一个通知的组成),将这些Advisor应用到所有符合切入点的Bean中
[color=red]需要注意的是,和BeanNameAutoProxyCreator相同,我们需要用ApplicationContext获得Bean[/color]
配置文件
[color=red]需要注意的是,和BeanNameAutoProxyCreator相同,我们需要用ApplicationContext获得Bean[/color]
package AutoProxyTwo;
import java.lang.reflect.Method;
import org.springframework.aop.MethodBeforeAdvice;
//前置通知
public class WelcomeAdvice implements MethodBeforeAdvice ...{
public void before(Method method, Object[] args, Object obj)
throws Throwable ...{
System.out.println("Hello welcome to bye ");
}
}
配置文件
<bean id="WelcomeAdvice" class="AutoProxyTwo.WelcomeAdvice">
</bean>
<!-- 自动代理所有的advisor -->
<bean id="autoProxyCreator" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
</bean>
<bean id="advisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="pattern">
<value>.*sell.+</value> <!-- 业务实现方法名匹配 -->
</property>
<property name="advice">
<ref bean="WelcomeAdvice"/>
</property>
</bean>