Hibernate和Spring - Dao,服务

Urb*_*leg 14 java service spring dao hibernate

我一直在阅读一些教程,我可以看到大多数MVC实现

基于:

1)dao接口,例如"IUserDao"

2)该接口的dao impl - "mySimpleUserDaoImpl"

3)持久性的服务接口:"IUserService"

4)和一个impl - "UserServiceImpl"

这是最好的做法吗?我的意思是我问这个问题的原因是因为使用getXById(),deleteX(x),createX(x)方法提供30个服务看起来多余或多或少相同似乎是多余的.

请考虑到我正在使用spring 3和hibernate 4,我决定在开始用代码猛击我的键盘之前我会问这个问题

谢谢.

bh5*_*h5k 9

如果您刚刚开始开发,请查看Spring JPA.服务应该是一对多存储库(DAO).但是我也不会再用手创建所有的样板代码了.Spring JPA消除了基本的CRUD和搜索功能以及分页.

这是一个视频,介绍了Spring,JPA,Hibernate的所有配置,并使用Spring Data JPA完成,显示了所有已消除的样板代码.

要使用Spring Data JPA,您的存储库接口最终会:

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);
}
Run Code Online (Sandbox Code Playgroud)

然后使用Spring Data JPA的XML配置:

<jpa:repositories base-package="com.mysampleapp.repository"/>
Run Code Online (Sandbox Code Playgroud)

现在为您处理所有样板代码.您不再需要使用find方法和基本CRUD函数创建基本存储库类.该JpaRepository接口提供了很多不错的功能,你不必做的具体实现.