2013-08-26 40 views
1

我开始一个新的Spring项目,并决定尝试Spring Roo。在设置持久层时,我发现Spring Roo支持(实际上甚至默认)ActiveRecord模式。尽管过去我一直都是DAO/DTO粉丝,但Roo为使用ActiveRecord模式提供了一个非常好的例子,因为它似乎“隐藏”了apsect文件中的大部分ActiveRecord方法。ActiveRecord与Spring Data的春季Roo

有没有人知道为什么Spring Roo开发人员在Spring Data提供/隐藏CRUD(DAO模式的典型bain)这么漂亮的工作时会默认ROO使用AR模式?春季是否试图推动更多人使用AR模式而不是回购模式?

回答

6

我相信这是因为来自Rails/Ruby阵营的ActiveRecord范例显示了我们习惯的完整堆栈的替代方案。这里是Spring团队是如何把它:

我们已经移除了DAO层,因为它不是严格必要的 创造大多数人都试图 构建

典型的web应用程序这也是值得观察大多数现代RAD框架都会避免DAO 层,并直接向实体添加持久性方法。如果您将 与Roo的类似技术进行比较,您会看到这种避免使用DAO层的DAO层是司空见惯的,主流并且不会造成问题。

来源:http://static.springsource.org/spring-roo/reference/html/architecture.html#architecture-dao

这就是说,我用小豆与成功类应用程序层。优点是感觉更“春”,而且由于我们可以删除Roo并内联所有IDT,所以长期维护可能会更简单。

最近,我使用ActiveRecord方式,因为Roo shell在使用存储库时仍不支持动态查找器。我不希望他们能够很快解决它: https://jira.springsource.org/browse/ROO-2694