Sping AOP
AOP 是面向切面编程,或者理解为面向方法编程。
底层通过动态代理实现对目标方法的编程。使用代理对象取代目标对象,
优势:
- 在不修改源代码的前提下,动态为核心业务添加辅助功能。
- 实现了业务和辅助功能的解耦,便于维护和拓展。
两种实现方式:
- JDK 动态代理(当目标对象实现了接口时):当客户端调用代理对象的方法时,实际上会调用到代理类中实现的InvocationHandler接口的invoke方法。在invoke方法中,可以在调用目标方法前后添加额外的逻辑(即增强逻辑),然后再通过反射调用目标对象的方法。
- CGLIB 动态代理(当目标对象没有实现接口时):Spring 的 AOP 会使用 CGLIB 动态代理。比如一个普通的 Java 类,没有实现任何接口,但又需要对其方法进行增强,此时就会采用 CGLIB 来创建代理对象。

浙公网安备 33010602011771号