【发布时间】:2010-06-15 06:00:18
【问题描述】:
我一直在用 Spring Roo 进行自己的一些实验,看起来很酷,但我注意到这个工具在模型层大量使用了 AOP。
我正在考虑使用 Roo 创建一个真正的项目,我想知道的是:
- 为什么 AOP 无处不在?可以吗?
- 这种方法的优缺点是什么?
我是面向方面编程的新手,非常感谢一些指导。
【问题讨论】:
标签: java aop spring-roo
我一直在用 Spring Roo 进行自己的一些实验,看起来很酷,但我注意到这个工具在模型层大量使用了 AOP。
我正在考虑使用 Roo 创建一个真正的项目,我想知道的是:
我是面向方面编程的新手,非常感谢一些指导。
【问题讨论】:
标签: java aop spring-roo
Spring 框架具有广泛的 AOP 功能,在基于 Roo 的应用程序中使用这些功能很有意义。 AOP 允许您在业务逻辑和系统逻辑之间进行良好而清晰的分离。正确完成后,您将获得更易于维护和理解的代码库。
缺点是对性能的影响很小,但不足以让我担心。
要了解有关 Spring 和 AOP 的更多信息,请查看docs。 Spring 将 AOP 用于事务管理和异步操作等事务。
edit:正如@chedine 正确指出的那样,AOP 是在编译时编织的,因此通常的 AOP 性能损失不适用。
【讨论】:
我认为,Spring ROO 不会对性能造成影响。由于它使用编译时编织,所有方面都在编译时引入。
【讨论】:
在这个相关的 SO 问题中解决了这些缺点:What are the disadvantages of Aspect-Oriented Programming (AOP)?
【讨论】: