读书人

AOP署理

发布时间: 2012-07-27 11:03:01 作者: rapoo

AOP代理

AOP框架创建的对象,用来实现切面契约(例如通知方法执行等等)。在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。AOP框架创建的对象,用来实现切面契约(例如通知方法执行等等)。在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。使用Aop首先导包aopalliance.jar,spring-aop-3.2.0.M1.jar,aspectjweaver.jar,cglib-nodep-2.1_3.jar暂时这些包

1、不使用cglib.jar:当你不导该jar的时候,所有声明的切入点都必须实现一个接口,因为当声明了一个切入点时,Spring会为该目标对象创建一个代理,然而代理和该目标对象又没有任何关系,所以只能通过接口,即代理和目标对象都实现目标对象所实现的接口。

1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP
2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP
3、如果目标对象没有实现了接口,必须采用CGLIB库,spring会自动在JDK动态代理和CGLIB之间转换

总之,建议优先使用JDK的动态代理

读书人网 >软件架构设计

热点推荐