Spring中的AOP简介

本文记录Java学习过程中遇到的AOP简介~

在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

它是为了解决OOP过程中遇到的一些问题,是OOP的延续和扩展。

AOP可以在不修改源码的情况下,对程序进行增强,比如:权限校验、日志记录、性能监控和事务控制等。

AOP最早由AOP联盟组织提出,Spring将AOP思想引入到框架中,也遵守了AOP联盟的规范。

Spring的AOP的底层用到两种代理机制:

  • JDK的动态代理:针对实现了接口的类产生代理;
  • Cglib的动态代理:针对没有实现接口的类产生代理,使用的是底层的字节码增强的技术,生成当前类的子类对象。

标签: none