Spring Roo 和面向方面的编程
我自己用 Spring Roo 进行了一些实验,看起来很酷,但我注意到这个工具在模型层大量使用了 AOP。
我正在考虑使用 Roo 创建一个真正的项目,我想知道的是:
- 为什么 AOP 无处不在?可以吗?
- 这种方法的优点和缺点是什么?
我对面向方面的编程很陌生,非常感谢一些指导。
i've been running some experiments of my own with Spring Roo and it seems to be pretty cool, but i noticed that this tool makes heavy use of AOP on the model layer.
I'm thinking about creating a real project using Roo and what i would like to know is:
- Why AOP is everywhere? Is that ok?
- What are advantages and disadvantages of this approach?
I'm quite new to aspect-oriented programming and some guidance would be greatly appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Spring 框架具有广泛的 AOP 功能,在基于 Roo 的应用程序中使用这些功能是有意义的。 AOP 允许您在业务逻辑和系统逻辑之间进行良好且清晰的分离。如果做得正确,您将获得更易于维护和理解的代码库。
缺点是性能影响较小,但还不足以让我担心。要了解有关 Spring 和 AOP 的更多信息,请查看文档。 Spring 使用 AOP 来处理事务管理和异步操作等事务。
编辑:正如 @chedine 正确指出的那样,AOP 是编译时编织的,因此通常的 AOP 性能影响不适用。
The Spring Framework has extensive AOP capabilities, and it makes sense to use these in Roo-based applications. AOP allows you to make a nice and clean separation between business logic and system logic. When done properly, you get a more maintainable and understandable codebase.
The disadvantage is a small performance hit, but not enough of one to make me worry about it.To learn more about Spring and AOP, have a look at the docs. Spring uses AOP for things like transaction management and asynchronous operations.
edit: As @chedine rightly pointed out, the AOP is compile-time weaved, so the usual AOP performance hit does not apply.
我认为,Spring ROO 不会对性能造成影响。由于它使用编译时编织并且所有方面都是在编译时引入的。
I think, there will not be a performance hit in case of Spring ROO. Since it uses compile time weaving and all aspects are introduced during compile time.
这个相关的SO问题解决了缺点: 缺点是什么面向方面编程(AOP)?
The disadvantages are addressed in this related SO question: What are the disadvantages of Aspect-Oriented Programming (AOP)?