spring aop简单记录

以spring aop的jdk实现为例,配置文件如下:

<bean id=”targetProxy” class=”org.springframework.aop.framework.ProxyFactoryBean”>
<property name=”target”>
//代理的对象
<ref bean=”sourceTarget” />
</property>
//配置的advice或advisor
<property name=”interceptorNames”>
<list>
<value>advice</value>
<value>advisor</value>
</list>
</property>
</bean>

1、targetProxy是一个factorybean,getObject时产生代理对象

2、代理对象被invoke时,把配置的advice或者advisor抽象成MethodInterceptor

3、最后把拦截链和target、method、args抽象成MethodInvocation
递归调用mi.proceed()来实现方法增强

===============================================

对于aspectj的方式有两种,配置文件或者注解
…AdvisorAutoProxyCreator类是一个BeanPostProcessor
会在getBean()过程中,初始化bean是调用postProcessAfterInitialization();创建代理对象
static {
APC_PRIORITY_LIST.add(InfrastructureAdvisorAutoProxyCreator.class);
APC_PRIORITY_LIST.add(AspectJAwareAdvisorAutoProxyCreator.class);
APC_PRIORITY_LIST.add(AnnotationAwareAspectJAutoProxyCreator.class);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值