【第六章】 AOP 之 6.9 代理机制 ——跟我学spring3
Spring AOP通过代理模式实现,目前支持两种代理:JDK动态代理、CGLIB代理来创建AOP代理,Spring建议优先使用JDK动态代理。 不能通知final方法,因为final方法不能被覆盖(CGLIB通过生成子类来创建代理)。 会产生两次构造器调用,第一次是目标类的构造器调用,第二次是CGLIB生成的代理类的构造器调用。如果需要CGLIB代理方法,请确保两次构造器调用不影响应用。 Spring AOP默认首先使用JDK动态代理来代理目标对象,如果目标对象没有实现任何接口将使用CGLIB代理,如果需要强制使用CGLIB代理,请使用如下方式指定: 对于Schema风格配置切面使用如下方式来指定使用CGLIB代理: 而如果使用@AspectJ风格使用如下方式来指定使用CGLIB代理:
<aop:config proxy-target-class="true">
</aop:config>
<aop:aspectj-autoproxy proxy-target-class="true"/>
上一篇: 详解怎样在Linux中配置静态网络连接
下一篇: 一个Socket连接管理器
推荐阅读
-
【第六章】 AOP 之 6.2 AOP的HelloWorld ——跟我学spring3
-
【第六章】 AOP 之 6.3 基于Schema的AOP ——跟我学spring3
-
【第六章】 AOP 之 6.4 基于@AspectJ的AOP ——跟我学spring3
-
【第六章】 AOP 之 6.9 代理机制 ——跟我学spring3
-
【第六章】 AOP 之 6.7 通知顺序 ——跟我学spring3
-
【第六章】 AOP 之 6.8 切面实例化模型 ——跟我学spring3
-
【第六章】 AOP 之 6.2 AOP的HelloWorld ——跟我学spring3
-
【第六章】 AOP 之 6.1 AOP基础 ——跟我学spring3
-
【第六章】 AOP 之 6.8 切面实例化模型 ——跟我学spring3
-
【第六章】 AOP 之 6.9 代理机制 ——跟我学spring3