更多资源 (Further Resources)
有关 AspectJ 的更多信息可以在 AspectJ 官方网站上找到。
Adrian Colyer 等人所著的《Eclipse AspectJ》(Addison-Wesley, 2005)提供了对 AspectJ 语言的全面介绍和参考。
Ramnivas Laddad 所著的《AspectJ in Action》第二版(Manning, 2009)受到高度推荐。该书的重点是 AspectJ,但也深入探讨了许多通用的 AOP 主题。
补充教学
1. 核心参考链接
除了上述经典著作,在现代开发环境中,建议关注以下在线资源:
- AspectJ 编程指南:AspectJ Programming Guide —— 这是学习 AspectJ 语法、点切入表达式(Pointcut Expressions)最权威的文档。
- Spring AOP 源码:通过阅读
org.springframework.aop.framework.ProxyFactory及相关的拦截器实现,可以从根本上理解代理模式的精髓。 - GitHub 示例项目:搜索 Spring PetClinic 等官方示例应用,查看 AOP 在实际业务(如事务管控、缓存)中的真实应用。
2. 学习路径建议
由于 AOP 的学习曲线较为陡峭,建议按以下阶段进阶:
- 入门阶段:熟练掌握
@AspectJ注解的基本用法(@Before、@After、@Around),搞清楚什么是切面、通知和切点。 - 原理阶段:深研 代理机制,理解 JDK 动态代理与 CGLIB 的区别,以及为何会出现“自调用失效”问题。
- 进阶阶段:学习 基于 AspectJ 的 LTW(加载时织入),尝试拦截非 Spring 管理的对象,并评估其性能损耗。
- 架构阶段:思考如何利用 AOP 设计可插拔的基础设施组件(如审计日志、性能检测、防重复提交)。
3. 推荐 IDE 插件
- IntelliJ IDEA Ultimate:拥有极其强大的 AOP 支持,能直接在编辑器左侧显示切面通知的图标,并支持从切入点直接跳转到被拦截的目标方法。
- AspectJ Development Tools (AJDT):虽然主要针对 Eclipse,但在进行复杂的 AspectJ 处理(如静态织入)时,它提供的可视化视图依然有其参考价值。