我正在玩Spring AOP。Spring AOP创建额外的bean
下面是一个简单的类
public class CModel extends Car {
private double torqueMeasure = 1;
public CModel() {
System.out.println(" C-Model constructor");
}
}
和Spring的配置是这样的
<aop:config>
<aop:aspect ref="audit">
<aop:before pointcut="execution(* com.test.main..*(..))" method="firstControl"/>
...
</aop:aspect>
</aop:config>
现在好了;当我添加aop:config并截取CModel时,Spring会调用CModel构造函数两次。这意味着Spring会创建2个CModel对象,对吧?
如果我删除AOP配置,那么Spring只创建一个CModel对象。
任何想法为什么它是这样的?
谢谢。
我认为spring为它创建了这个bean和代理。动态代理类扩展了基类,所以它应该在其构造函数中调用super()。您可以在CModel构造函数中打印堆栈跟踪,以确保(像新的Exception()。printStackTrace())。 – svaor