我一直在阅读一些教程,我可以看到大多数 MVC 实现
基于:
1) 一个dao接口(interface),例如“IUserDao”
2) 该接口(interface)的 dao impl - “mySimpleUserDaoImpl”
3) 持久化服务接口(interface):“IUserService”
4) 和一个 impl - "UserServiceImpl"
这是最佳做法吗?我的意思是我问这个问题的原因是因为有 30 个服务与 getXById()、deleteX(x)、createX(x) 方法或多或少相同,这似乎是多余的。
请考虑到我使用的是 spring 3 和 hibernate 4,我决定在开始用代码敲击键盘之前先问这个问题
谢谢。
最佳答案
如果您刚刚开始开发,请查看 Spring JPA .服务应该是一对多存储库 (DAO)。但我也不会再手动创建所有样板代码。 Spring JPA 消除了基本的 CRUD 和搜索功能以及分页。
Here is a video它遍历了 Spring、JPA、Hibernate 的所有配置,并以 Spring Data JPA 结束,向您展示了所有被消除的样板代码。
要使用 Spring Data JPA,你的存储库接口(interface)最终是:
package com.mysampleapp.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.wcfgroup.model.Employee;
@Repository("employeeRepository")
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
Employee findBySsn(String ssn);
}
然后XML配置使用Spring Data JPA:
<jpa:repositories base-package="com.mysampleapp.repository"/>
现在为您处理所有样板代码。您不再需要创建具有查找方法和基本 CRUD 功能的基本存储库类。 JpaRepository
接口(interface)提供了许多不错的功能,您无需为实现做任何事情。
关于java - Hibernate 和 Spring - 道,服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16547862/