2012-02-23 97 views
3

我知道spring roo可以生成實體和控制器。但我的要求是生成DAO和服務層或至少是DAO。有沒有什麼辦法可以使用spring-roo來生成實體,控制器和DAO使用spring roo生成DAO

回答

6

我認爲沒有辦法制作DAO,但我會糾正。

在最近發佈的Roo 1.2中,現在有JPA Repositories的概念和Spring blog中詳述的新服務元素。

+0

感謝您的幫助。現在我能夠創建服務和存儲庫。我想這個存儲庫可以用來代替DAO對不對? – 2012-02-24 01:42:55

+1

是的。從理論上講,這些概念並不相同,但在實施過程中,他們經常感到困惑。 http://stackoverflow.com/questions/8550124/what-is-the-difference-between-dao-and-repository-patterns。另外,從架構的角度來看,他們可以輕鬆使用控制器或服務所使用的相同空間。 – madth3 2012-02-24 01:52:27

+0

春天博客網址被破壞。新[鏈接](http://spring.io/blog/2011/09/14/new-application-layering-and-persistence-choices-in-spring-roo-1-2) – bioinfornatics 2014-01-10 14:15:50

2

舉一個例子,你有一個User類領域usernamepassword你需要創建了一個抽象層

Entity -> Repository (DAO) -> Service 

User-> UserRepository -> UserService 

基本上有做事情的2種方法 - 第一個使用JPA Repository,第二個使用Mongo Repository,除了默認的ActiveRecord風格。使用Mongo或JPA進行設置類似。我在這裏解釋JPA Repository的命令。

1)執行安裝命令

jpa setup --provider HIBERNATE --database HYPERSONIC_PERSISTENT 

2)定義新的用戶實體設置默認activeRecord爲假(重要)

entity --class ~.domain.User --activeRecord false 

3)定義字段用於這樣的用戶實體

field string --fieldName userName --notNull --sizeMin 3 --class ~.domain.User 
field string --fieldName password --notNull --sizeMin 3 --class ~.domain.User 

4)使用repository jpa創建一個新的JPA存儲庫接口命令,這相當於通過擴展彈簧數據JpaRepository類public interface UserRepository extends JpaRepository<User, Long> {/*Code*/}來創建新的存儲庫接口。這提供了所有的CRUD功能,你不需要添加任何東西。您可以添加其他搜索功能。存儲庫接口與DAO接口類似。 DAO與持久化實體更緊密地耦合,而Repository與域對象更相關。

repository jpa --interface ~.repository.UserRepository --entity ~.domain.User 

5)現在添加服務層,您可以在其中添加所有業務邏輯到您的應用程序。此步驟將創建UserService接口和UserServiceImpl

service --interface ~.service.UserService --entity ~.domain.User 

的分層設置完成。您現在可以創建Web層並執行您的代碼。

web mvc setup 
web mvc all --package ~.web 
相關問題