当前位置: 首页 > news >正文

关于AOP的学习过程简单总结

从听说AOP,到学习、使用AOP已经有3年多了。在这过程中,主要接触了两个AOP的实现spring AOP与aspectj,先学习了spring AOP,后来使用spring2.0的时候,才学习了aspectj,在使用spring AOP的时候,一直感觉自己没有抓住AOP的精髓,就会使用spring AOP来配置事务,再难一点就搞不定了。不看文档的话,经常忘记join point与ponit cut的关系与概念,直到在看了aspectj in action这本书以后,感觉自己才真正抓住了AOP的核心,其实看这本书,也是因为spring2.0引入了aspectj的语法,才去看的,本来只想学习一下aspectj的语法,没想到,收获了更多的知识,现在不论怎么,都不会忘记AOP的各种术语与意义。
在这里,我想说的是,spring AOP使用Proxy来实现AOP比较难于理解,特别是对于初学者,我认为代理模式与AOP并不能化等号,而且开始就使用spring AOP来学习,肯定抓不住AOP的精髓,而且会让初学者产生错觉,认为这就是AOP。若想学好AOP,最好开始就学习aspectj,因为aspectj是AOP中各种思想、术语、概念的源头鼻祖,其它的实现都是在往aspectj思想上靠拢,我想这也是spring2.0+引入aspectj语法的原因,就像spring参考文档能够中说的,spring apsectj配置语法的底层仍然使用proxy的方式来实现的,但是带来的效果是不一样的,尤其是它给AOP的使用者的感觉是不一样的,让使用者更容易抓住AOP的本质,而不是与各种复杂配置文件,以及复杂概念作斗争。

相关文章:

  • 英语词典缩略词
  • SQL 2008 T-Prep 上课心得(二)
  • conda虚拟环境指定python版本出错
  • 浅谈 自定义Vista启动管理项
  • 光线追踪渲染技术能听懂的介绍
  • 使用游标会更好
  • 生成相机光线:栅格空间-NDC-屏幕空间-世界
  • 《荒漠甘泉》4月17日
  • 根据tensor 构造 cdf
  • 理解 tensor, cat, unsquee, stack
  • ITIL-以流程为中心的IT管理行业标准
  • NeRF代码学习记录
  • VC数据类型转换大全 (转)
  • Tensor unsqueeze 以 broadcast
  • 服务器用 git clone
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • exif信息对照
  • express如何解决request entity too large问题
  • in typeof instanceof ===这些运算符有什么作用
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • js中的正则表达式入门
  • Laravel Telescope:优雅的应用调试工具
  • mysql_config not found
  • Redux 中间件分析
  • Spring Boot快速入门(一):Hello Spring Boot
  • Vue.js-Day01
  • Vue小说阅读器(仿追书神器)
  • XForms - 更强大的Form
  • 测试如何在敏捷团队中工作?
  • 从0实现一个tiny react(三)生命周期
  • 记录:CentOS7.2配置LNMP环境记录
  • 今年的LC3大会没了?
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 手写一个CommonJS打包工具(一)
  • 白色的风信子
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 容器镜像
  • #if #elif #endif
  • (14)Hive调优——合并小文件
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (八十八)VFL语言初步 - 实现布局
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (接口封装)
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (十六)串口UART
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net FrameWork简介,数组,枚举