我的印象是 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/