【发布时间】:2013-05-09 00:15:04
【问题描述】:
我一直在阅读一些教程,我可以看到大多数 MVC 实现
基于:
1) 一个dao接口,例如“IUserDao”
2) 该接口的 dao impl - “mySimpleUserDaoImpl”
3) 持久化服务接口:“IUserService”
4) 和一个 impl - "UserServiceImpl"
这是最佳做法吗?我的意思是我问这个问题的原因是因为有 30 个服务与 getXById()、deleteX(x)、createX(x) 方法或多或少相同,这似乎是多余的。
请考虑到我使用的是 spring 3 和 hibernate 4,我决定在开始用代码敲击键盘之前先问这个问题
谢谢。
【问题讨论】:
-
您可以删除接口的
I前缀。用户不应该知道它正在获取一个界面。打电话给他们UserDAO和UserService。 -
同意,将 I 放在接口上。我个人称我的 Dao classes Repositories 只是为了使其与 Spring Annotations 保持一致,但这并不重要。
-
技术教程通常不涉及业务逻辑,因此它们不是很好的参考。 stackoverflow.com/q/3688664/217324有一个类似的问题可能对你有帮助
-
关于服务层的另一件事是你的@Transaction 应该从哪里开始。因此,如果您想跨多个存储库回滚事务,则可以在服务层执行此操作。这就是为什么服务应该与存储库是一对多的。
标签: java spring hibernate service dao