AOP(面向切面编程)是一种程序设计思想,旨在将一些跨越多个对象的功能(即切面)模块化。这样可以有效地将与一般业务逻辑无关的功能从核心业务逻辑中分离出来,这样就可以在不修改核心业务逻辑的情况下在不同的地方重用这些功能,也可以更灵活地对这些功能进行配置和管理。
AOP的底层原理是动态代理。动态代理是在运行时动态地创建代理类的一种机制,它可以在不修改源码的情况下,为一个对象提供额外的功能。在 AOP 中,通常会使用动态代理来为业务对象创建代理对象,然后在代理对象的方法调用中植入切面逻辑。这样就可以在不修改业务对象的情况下,在方法调用的前后、抛出异常的前后植入切面逻辑。