关于Spring实现aop中的xml

首先感谢各位高手在百忙之中点开小弟的帖子,
小弟刚刚涉足aop,遇到一问题,
在用Spring实现aop,
配置文件里面写了这样一句

老师讲的时候说的是,配置目标对象,

照这么说 是把一个目标类的对象配置给ProxyBeanFactory一个属性
可我打开ProxyBeanFactory.class这个类,并未发现有target这样的属性啊

等待高手解惑……

2个回答

在AdvisedSupport类里有个targetSource属性,其实,这个的name="target"的意思是调用setTarget方法,调用的具体方法如下:
[code="java"]public void setTarget(Object target) {
setTargetSource(new SingletonTargetSource(target));
}

public void setTargetSource(TargetSource targetSource) {
    this.targetSource = (targetSource != null ? targetSource : EMPTY_TARGET_SOURCE);
}[/code]

通过代码我们可以看到,通过调用AdvisedSupport类中的setTarget(Object target)方法,并且在此方法中,对传进来的对象进行了封装后,又将封装后的值作为setTargetSource方法的参数传进去,并且将值付给targetSource属性,在AdvisedSupport里是这样定义targetSource的,[code="java"]TargetSource targetSource = EMPTY_TARGET_SOURCE;[/code]可以看到,AdvisedSupport是将我们传进来的Bean最终封装成TargetSource对象。如果想更深入的了解,我建议楼主去看下Spring的源代码,最Spring学习很有帮助的。
另外,纠正一个错误,不是ProxyBeanFactory类,是ProxyFactoryBean类。

因为这个target属性在它的父类AdvisedSupport里面,看下api就知道了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!