114、Spring AOP是如何实现的?它和AspectJ有什么区别?

Spring AOP是如何实现的?它和AspectJ有什么区别?

  • 一、AOP的理解
    • 1、spring aop:动态代理实现
    • 2、spring aop 和 AspectJ的区别
    • 3、小图

一、AOP的理解

其实,AOP只是一种编程思想,表示面向切面编程,如果想实现这种思想,可以使用动态代理啊,第三方的框架 AspectJ啊等等。

1、spring aop:动态代理实现

  • Spring AOP是利用的动态代理机制
  • 如果一个Bean实现了接口,那么就会采用JDK动态代理来生成该接口的代理对象
  • 如果一个Bean没有实现接口,那么就会采用CGLIB来生成当前类的一个代理对象。
  • 代理对象的作用就是代理原本的Bean对象,代理对象在执行某个方法时,会在该方法的基础上增加一些切面逻辑
  • 应用场景:我们可以利用AOP来实现一些诸如登录校验、权限控制、日志记录等统一功能。

2、spring aop 和 AspectJ的区别

  • Spring AOP和AspectJ之间并没有特别强的关系,AOP表示面向切面编程,这是一种思想,各个组织和个人都可以通过技术来实现这种

你可能感兴趣的:(spring,java,后端,JDK动态代理,cglib代理,AOP,Aspectj)