【发布时间】:2018-01-01 22:12:56
【问题描述】:
我刚刚开始使用Spring Data JPA 处理Spring Boot。当我从表中生成模型时,我创建了一个扩展 JpaRepository<myModel, String> 的 modelRepo
public interface userRepository extends JpaRepository<User, String>{
}
然后从控制器,我可以很容易地调用userRepository.findAll() 来获取数据。
但是,当我查看一些教程时,它们在调用 findAll() 之前有额外的几个步骤。往下看:
public interface userService{
Iterator findAll();
}
public class userServiceImpl implements userService{
@Autowired
UserRepository userRepository
@Override
Iterator findAll(){
return userRepository.findAll();
}
}
诸如此类,我可以直接从userRepository查询数据,只要@Autowired注入userRepository即可。
在某些示例中,它们的结构与上述相同。谁能解释一下为什么在调用数据之前我们需要service 和serviceImpl。
【问题讨论】:
-
可能该服务提供了不止一种 (
findAll) 方法。所以也许是一个方法findAllKids()然后在内部计算每个用户的年龄并只返回孩子。因此,您可以将服务称为具有附加功能的包装类
标签: java spring spring-mvc spring-boot spring-data-jpa