动态代理
JVM 动态代理
JVM 动态代理(基于接口)
只能代理有接口的类,通过实现接口生成代理类。
Spring 默认使用 JDK 动态代理。
CGLib(Code Generation Library) 代理(基于子类继承)
通过继承目标类生成子类,没接口也能代理。
spring 默认使用 JVM动态代理,当目标类无接口,或启用
proxyTargetClass=true时,Spring 使用 CGLib。
上代码
public interface HelloWorld {
void sayHello(String name);
}public class HelloWorldImpl implements HelloWorld {
@Override
public void sayHello(String name) {
System.out.println("Hello " + name);
}
}Last updated
Was this helpful?