cglib动态代理(cglib动态代理实现原理)
关于java动态代理和cglib动态代理的区别
JDK动态代理要求被代理的类必须实现一个接口,而CGLIB代理不要求被代理类实现某个接口,CGLIG代理则是给代理类生成一个子类,通过操作子类实现代理代理可以分为动态代理和静态代理。然后java动态代理和cglib动态代理都属于动态代码。他们2个的主要区别在于:jdk动态代理只能对实现了接口的类生成代理,而不能针对类 ;cglib是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法 ;因为是继承,所以该类或方法最好不要声明成final ,final可以阻止继承和多态。
java cglib 调用代理类的方法
一、类的分类:
1、普通类
2、抽象类(含有抽象方法的类)
3、静态类(不需要实例化,就可以使用的类)
二、方法的分类:
1、私有方法(只有类的内部才可以访问的方法)
2、保护方法(只有类的内部和该类的子类可以访问的方法)
3、共有方法(无论内部或外部均可访问的方法)
4、静态方法(可以不实例话对象,通过类名.方法就可以调用的方法)
5、抽象方法(只有方法的签名而没有实现的方法)
三、方法的调用:
1、普通类:实例化一个该类的对象,然后通过对像访问。例如:
class A {
public void method1(){
System.out.println(“我是A类的方法1”);
}
public static void main(String[] args){
A a=new A();
a.method1();
2、静态类:可以通过类名直接访问,而不用实例化对象。例如:
class static A {
public static void method1(){
System.out.println(“我是A类的方法1”);
}
public static void main(String[] args){
A.method1();
3、抽象类:抽象类本身不能实例化对象,抽象类只能由继承自他的子类来实例。也就是子类实例化父类对象。
还没有评论,来说两句吧...