为什么我们创建接口扩展其他接口,而不是直接使用扩展接口在春天引导其他教程?



我是Spring Boot的新手。我遵循这个教程:

https://spring.io/guides/tutorials/rest/

在本教程中,有一个这样的接口声明:
package payroll;
import org.springframework.data.jpa.repository.JpaRepository;
interface EmployeeRepository extends JpaRepository<Employee, Long> {
}

第一个问题;为什么我们宣布这个接口呢?在教程中所使用的代码中,如果我将jpareposiitory<Employee,>而不是EmployeeRepository,一切都像以前一样工作。为什么我要使用employeererepository接口,而原来的接口在那里?

第二个问题;接口是如何实现的,并通过Spring Boot自动创建一个实现对象?这背后的魔力是什么?

  1. 在您的EmployeeRepository中,除了JpaRepository中已经可用的方法之外,您可以添加更多的方法。您可以简单地通过添加方法来实现这一点,Spring将解析它们的名称并创建相应的查询。您可以在https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods了解更多信息。此外,EmployeeRepositoryJpaRepository<Employee, Long>更容易阅读和理解。这实际上会帮助你和其他人阅读你的代码。

  2. 你也可以在https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods上读到更多关于这个的信息,但是非常具体和肮脏的细节只能在Spring框架代码中找到。

最新更新