Spring中JDK动态代理和CGLib代理之间的区别
SpringAOP是基于代理的。Spring使用了两种代理策略,一种是JDK动态代理,另一种是CGLIB代理。
JDK提供了JDK动态代理。它只能是按接口的代理,因此目标类需要实现接口。在您实现一个或多个接口时,spring会自动使用JDK动态代理。
另一方面,CGLIB是一个用于创建代理的第三方库。它可以通过子类化创建代理。如果类未实现接口,则Spring使用CGLIB作为代理。
SpringAOP是基于代理的。Spring使用了两种代理策略,一种是JDK动态代理,另一种是CGLIB代理。
JDK提供了JDK动态代理。它只能是按接口的代理,因此目标类需要实现接口。在您实现一个或多个接口时,spring会自动使用JDK动态代理。
另一方面,CGLIB是一个用于创建代理的第三方库。它可以通过子类化创建代理。如果类未实现接口,则Spring使用CGLIB作为代理。