1 AOP 的功能是把横切的问题(如性能监视、事务管理)模块化。AOP的核心是连接点模型,他提供在哪里发生横切。
Spring AOP 的底层是通过使用 JDK 或 CGLib 动态代理技术为目标 bean 织入横切逻辑。
2 JDK 代理可以为一个类的接口创建代理对象,需要类有实现接口。 CGLib 采用动态创建子类的方式生成代理对象。所以不能对目标类的 final,private 方法进行代理。
3 Spring AOP 通过 Pointcut 指定在哪些类那些方法上织入横切逻辑,通过 Advice 描述横切逻辑和方法的具体织入点(方法前、方法后、方法前后)
4 Spring 通过 Advisor 将 Pointcut 和 Advice 组装起来。有了 Advisor 信息,Spring 就可利用 JDK 或者 CGLib 动态代理技术采用统一的方式为目标Bean 创建织入切面的代理对象。
时间: 2024-11-07 17:25:45