代码之家  ›  专栏  ›  技术社区  ›  Rahul Gupta

这些接口方法的实现在哪里?[副本]

  •  0
  • Rahul Gupta  · 技术社区  · 8 年前

    我对spring Boot和Hibernate还不太熟悉,我也在看下面的文章: https://medium.com/@gustavo.ponce.ch/spring-boot-spring-mvc-spring-security-mysql-a5d8545d837d

    我看到下面在接口中声明的方法,但是这些方法在任何地方都没有实现。

      @Repository("userRepository")
    public interface UserRepository extends JpaRepository<User, Long> {
         User findByEmail(String email);
    }
    
    @Repository("roleRepository")
    public interface RoleRepository extends JpaRepository<Role, Integer>{
        Role findByRole(String role);
    
    }
    

    有人能解释一下这些方法的实现在哪里,它是如何工作的吗?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Karol Dowbecki    8 年前

    根据 Getting Started: Accessing Data with JPA 条款:

    在典型的Java应用程序中,您希望编写一个实现CustomerReportory的类。但这正是Spring Data JPA如此强大的原因:您不必编写存储库接口的实现。Spring Data JPA在运行应用程序时动态创建一个实现。

    如果你深入研究Sprign Data JPA框架,你会发现 org.springframework.data.jpa.repository.support.SimpleJpaRepository 以及其他做实际工作的类。通常你不会用这些。