2013-08-26 39 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