Skip to content

更多资源 (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 的学习曲线较为陡峭,建议按以下阶段进阶:

  1. 入门阶段:熟练掌握 @AspectJ 注解的基本用法(@Before@After@Around),搞清楚什么是切面、通知和切点。
  2. 原理阶段:深研 代理机制,理解 JDK 动态代理与 CGLIB 的区别,以及为何会出现“自调用失效”问题。
  3. 进阶阶段:学习 基于 AspectJ 的 LTW(加载时织入),尝试拦截非 Spring 管理的对象,并评估其性能损耗。
  4. 架构阶段:思考如何利用 AOP 设计可插拔的基础设施组件(如审计日志、性能检测、防重复提交)。

3. 推荐 IDE 插件

  • IntelliJ IDEA Ultimate:拥有极其强大的 AOP 支持,能直接在编辑器左侧显示切面通知的图标,并支持从切入点直接跳转到被拦截的目标方法。
  • AspectJ Development Tools (AJDT):虽然主要针对 Eclipse,但在进行复杂的 AspectJ 处理(如静态织入)时,它提供的可视化视图依然有其参考价值。

Based on Spring Framework.