我知道spring roo可以生成实体和控制器。但我的要求是生成DAO和服务层或至少是DAO。有没有什么办法可以使用spring-roo来生成实体,控制器和DAO使用spring roo生成DAO
3
A
回答
6
我认为没有办法制作DAO,但我会纠正。
在最近发布的Roo 1.2中,现在有JPA Repositories的概念和Spring blog中详述的新服务元素。
2
举一个例子,你有一个User
类领域username
,password
你需要创建了一个抽象层
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
感谢您的帮助。现在我能够创建服务和存储库。我想这个存储库可以用来代替DAO对不对? – 2012-02-24 01:42:55
是的。从理论上讲,这些概念并不相同,但在实施过程中,他们经常感到困惑。 http://stackoverflow.com/questions/8550124/what-is-the-difference-between-dao-and-repository-patterns。另外,从架构的角度来看,他们可以轻松使用控制器或服务所使用的相同空间。 – madth3 2012-02-24 01:52:27
春天博客网址被破坏。新[链接](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