java - Spring AOP 与 AspectJ

标签 java spring design-patterns aspectj spring-aop

我的印象是 Spring AOP 最适合用于特定于应用程序的任务,例如安全性、日志记录、事务等,因为它使用自定义 Java5 注释作为框架。然而,AspectJ 似乎对设计模式更友好。

谁能强调在 Spring 应用程序中使用 Spring AOP 与 AspectJ 的各种优缺点?

最佳答案

Spring-AOP 优点

  • 它比 AspectJ 更易于使用,因为您不必使用 LTW (load-time weaving) 或 AspectJ 编译器。

  • 它使用代理模式和装饰器 模式

Spring-AOP 的缺点

  • 这是基于代理的 AOP,所以基本上你只能使用方法执行连接点。
  • 在同一个类中调用另一个方法时不会应用方面。
  • 可能会有一点运行时开销。
  • Spring-AOP 不能向不是由 Spring 工厂创建的任何内容添加方面

AspectJ 优点

  • 这支持所有连接点。这意味着你可以做任何事情。
  • 与 Spring AOP 相比,运行时开销更少。

AspectJ 缺点

  • 小心。检查您的方面是否仅编织到您想要编织的内容。
  • 您需要使用 AspectJ 编译器进行额外的构建过程,或者必须设置 LTW(加载时编织)

关于java - Spring AOP 与 AspectJ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1606559/

相关文章:

python - 类函数中 pre-do 的设计模式是什么

javascript - 扩展和删除工具栏按钮

java - 将行为附加到 NetBeans 上的 "build"操作

java - 如果 JVM 实现因一台机器而异,字节码生成如何使 Java 平台独立?

java - 两个证书和 CSR 文件

java - Spring 验证与 Hibernate 验证

java - 如何在Spring Integration中设置soap header ?

javascript - Angularjs是基于哪种设计模式?,学习一种设计模式就够了?

java - 如何将xml文件内容映射到Java对象

java - 是否可以将变量用作@JsonRootName?