SpringAOP--面向切面编程--理解 - Go语言中文社区

SpringAOP--面向切面编程--理解


一:什么是AOP

     AOP : Aspect Oriented Programming  面向切面编程。技术支撑为动态代理,它为解耦而生。

二:AOP实现原理

      AOP分为静态AOP和动态AOP。

      静态AOP是指AspectJ实现的AOP,他是将切面代码直接编译到Java类文件中。

      动态AOP是指将切面代码进行动态织入实现的AOP。

      Spring的AOP为动态AOP,实现的技术为: JDK提供的动态代理技术 和 CGLIB(动态字节码增强技术) 。但都是基于代理模式 , 都是生成一个代理对象 。

三:AOP术语解释及执行流程

四:AOP与OOP的区别

       AOP、OOP在字面上虽然非常类似,但却是面向不同领域的两种设计思想。OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。

       而AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。这两种设计思想在目标上有着本质的差异

五:AOP总结

      在不影响主业务代码纵向执行的情况下,横向切入需要加入的其他内容(如权限模块,事物模块,日志模块等),但并不影响主业务代码的纯洁性。
 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/lin140611/article/details/100019401
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-07 18:00:31
  • 阅读 ( 1115 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢