Jdk动态代理和Cglib动态代理
Jdk动态代理:
只能为接口实现代理
接口:
1 | public interface IUser { |
实现类:
1 | public class User implements IUser { |
实现InvocationHandler接口:
1 | import java.lang.reflect.InvocationHandler; |
调用:
1 | import java.lang.reflect.Proxy; |
cglib动态代理:
为类生成代理,被代理类无需实现接口,
引入jar包版本asm3.31对应cglib-2.2.2(对应其他版本cglib可能会有冲突,)
被代理类不能用final修饰,要生成子类
被代理类:
1 | public class User { |
实现MethodInterceptor接口:
1 | import net.sf.cglib.proxy.Enhancer; |
调用:
1 | public class test { |