# 5.3AOP代理

SpringAOP默认为对AOP代理使用标准的JDK动态代理。这样就可以代理任何接口（或一组接口）。

SpringAOP也可以使用CGLIB代理。如果要代理类而不是接口，则必须使用CGLIB。默认情况下，如果业务对象不实现接口，则使用cglib。由于编程到接口而不是类是很好的实践，业务类通常实现一个或多个业务接口。在某些情况下（可能很少），需要通知一个接口上没有声明的方法，或者需要将代理对象作为具体类型传递给方法，则可以强制使用cglib。

重要的是要了解SpringAOP是基于代理的。请参阅了解AOP代理以彻底检查此实现细节的实际含义。
