1、AOP面向切面编程,独立概念
2、Spring提供了对于AOP编程思想的便捷支持,简化AOP编程,称为Spring AOP,对于代码增强,
3、Spring AOP主要是2个方式,动态代理和CGLib
4、提供多种注解,便于实现不同的AOP
(1)前置增强(BeforeAdvice):在目标方法前调用。
(2)后置增强(AfterAdvice):在目标方法后调用。
(3)环绕增强(AroundAdvice):将 Before 和 After ,甚至抛出增强和返回增强合到一起。
(4)返回增强(AfterReturningAdvice):在方法返回结果后执行。
(5)抛出增强(AfterThrowingAdvice):在目标方法抛出对应的类型后执行。
5、JDK 动态代理 —— 推荐方式。只要目标对象实现甚至一个接口, 就会使用 JDK 动态代理;
CGLIB 代理 —— 如果目标对象没有实现接口, 则可以使用 CGLIB 代理。
spring AOP 属于第二代AOP(动态AOP),采用动态代理机制和字节码生成技术实现,与最初的 AspectJ采用编译器将横切逻辑织入目标对象不同,动态代理机制和字节码生成都是在运行期间为目标对象生成一个代理对象,而将横切逻辑织入到这个代理对象中,系统最终使用的是织入了横切逻辑的代理对象,而不是真正的目标对象。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。