https://blog.csdn.net/qq_39552268/article/details/123472726

1.JDK动态代理

private,protected final方法肯定不能被代理,因为接口就不支持private protected final方法

static 方法不能被代理

2.CGLIB动态代理

1.private

private方法肯定是不能被代理的,因为子类和其它类都不能访问一个类的私有方法

2.protected

protected方法到是可以被代理,但是CGLIB是基于继承关系来实现的,生成的代理类中对于protected的代理方法,也是protected的,访问范围受限制

3.final

final修饰的方法不能被代理,因为final修饰的方法不能被子类重写,会报错

final修饰的类 不能被代理,因为final修饰的类不能被继承

4.static

静态方法不能被代理

总结:

Spring事务基于Spring AOP,Spring AOP底层用的动态代理,动态代理有两种方式:

protected 方法的作用域范围: