我正在玩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