采用mybatis-plus并且在controller方法上加@Transactional,一共经过了多少层动态代理
由于controller类存在有被事务注解的方法,它要被spring创建CglibAopProxy,被@Transactional注解的方法要通过CglibMethodInvocation执行。
mybatis-plus为了实现公共方法在service、mapper、xml中免创建,在定义时通过继承和泛型实现,在执行时通过为serviceImpl、mapper都创建了动态代理。