cglib动态代理(cglib动态代理实现原理)

- 日理万妓 2023-09-26 13:50 356阅读 0赞

关于java动态代理和cglib动态代理的区别

JDK动态代理要求被代理的类必须实现一个接口,而CGLIB代理不要求被代理类实现某个接口,CGLIG代理则是给代理类生成一个子类,通过操作子类实现代理代理可以分为动态代理和静态代理。然后java动态代理和cglib动态代理都属于动态代码。他们2个的主要区别在于:jdk动态代理只能对实现了接口的类生成代理,而不能针对类 ;cglib是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法 ;因为是继承,所以该类或方法最好不要声明成final ,final可以阻止继承和多态。

cglib动态代理

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、抽象类:抽象类本身不能实例化对象,抽象类只能由继承自他的子类来实例。也就是子类实例化父类对象。

发表评论

表情:
评论列表 (有 0 条评论,356人围观)

还没有评论,来说两句吧...

相关阅读

    相关 CGLib动态代理原理

    CGLib动态代理原理 CGLib动态代理是代理类去继承目标类,然后重写其中目标类的方法啊,这样也可以保证代理类拥有目标类的同名方法; 看一下CGLib的基本结构,下图

    相关 CGLib动态代理原理实现

    JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类,如何实现动态代理呢,这就需要CGLib了。CGLib采用了非常底层的字节码技术,其原理是通过字节码技术为一个

    相关 CGLIB动态代理

    一 说明 使用火车站卖票,使用CGLIB代理实现。 如果没有定义SellTickets接口,只定义了TrainStation(火车站类)。很显然JDK代理是无法使用了