11.1.3 AOP Proxies
Spring AOP 默认使用标准的JDK动态代理用来AOP代理。这可以使任何接口(一系列接口)被代理
Spring AOP可以使用CGLIB代理。这在代理类而不是接口时是必须的。CGLIB默认被使用CGLIB如果一个商业对象没有实现任何接口。最好是面向接口编程而不是类;商业的类通常会实现一个或多个商业接口。也可以强制使用CGLIB,在这种罕见的情况 - 如需要通知一个没有实现接口的方法,或你需要传递一个被代理的对象到方法作为实参类型。
掌握Spring AOP 是基于代理的事实是很重要的。查阅Section 11.6.1 "Understanding AOP proxies" 获取此实现细节真实的意义的确切的解释