Lur*_*rtz 5 java aop spring spring-aop
我正在玩Spring AOP.
这是一个简单的课程
public class CModel extends Car {
private double torqueMeasure = 1;
public CModel() {
System.out.println(" C-Model constructor");
}
}
Run Code Online (Sandbox Code Playgroud)
Spring配置就是这样的
<aop:config>
<aop:aspect ref="audit">
<aop:before pointcut="execution(* com.test.main..*(..))" method="firstControl"/>
...
</aop:aspect>
</aop:config>
Run Code Online (Sandbox Code Playgroud)
现在可以; 当我添加aop:config并拦截CModel然后Spring调用CModel构造函数两次.这意味着Spring创建了2个CModel对象,对吧?
如果我删除AOP配置,那么Spring只创建一个CModel对象.
知道为什么会这样吗?
谢谢.
虽然我不确定,但我的猜测是spring首先实例化常规类,然后创建一个CGLIB代理,这是一个子类.请注意,对于初始化,您应该使用@PostConstruct,保证使用一次.
为了验证我的假设,在构造函数中添加一个断点并查看它何时被调用 - 有一次它应该在CModel$EnhancedByCGLIB某个东西之后
| 归档时间: |
|
| 查看次数: |
853 次 |
| 最近记录: |