运用spring aop技术面向切面编程,一般事务可以通过这种方式实现,另外一种场景就是在你执行某些功能的时候你可以对这些功能进行增加,譬如在方法执行前打印日志等,增强的位置可以是前置、后置、环绕、异常通知、最终通知。 Spring 如果为某个目标组件切入了AOP功能后,Spring容器会采用动态代理技术生成一个新组件对象返回。并且在新组件中将原有组件的业务方法进行了重写,在重写方法里实现了切面组件功能和原目标组件功能的合并。 spring aop底层实现有2中方式,一种是JDK自带的动态代理方式,通过实现原目标组件接口;另一种是cglib技术,通过继承原目标类实现。 这里问题中采用的是cglib技术
看一眼你立马就理解了。就是使用cglib代理 不使用JDK动态代理 可以不用实现接口罢了
Spring 如果为某个目标组件切入了AOP功能后,Spring容器会采用动态代理技术生成一个新组件对象返回。并且在新组件中将原有组件的业务方法进行了重写,在重写方法里实现了切面组件功能和原目标组件功能的合并。
spring aop底层实现有2中方式,一种是JDK自带的动态代理方式,通过实现原目标组件接口;另一种是cglib技术,通过继承原目标类实现。
这里问题中采用的是cglib技术